在这个关联映射页面上,有一个例子在manytomany部分.但我不明白哪个实体(组或用户)是拥有方.
我也把代码放在这里
<?php
/** @Entity */
class User
{
// ...
/**
* @ManyToMany(targetEntity="Group", inversedBy="users")
* @JoinTable(name="users_groups")
*/
private $groups;
public function __construct() {
$this->groups = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}
/** @Entity */
class Group
{
// ...
/**
* @ManyToMany(targetEntity="User", mappedBy="groups")
*/
private $users;
public function __construct() {
$this->users = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
我是否读过这样的注释:用户是映射组,所以组是进行连接管理的实体,因此是拥有方?
另外,我在文档中读到过这个:
For ManyToMany bidirectional relationships either side may be the owning side (the side that defines the @JoinTable and/or …Run Code Online (Sandbox Code Playgroud) 我喜欢在表单中'form-theme'我的日期时间小部件.我在其中创建了一个fields.html.twig文件:
{% block datetime_widget %}
{% spaceless %}
<div {{ block('widget_container_attributes') }}>
{{ '{{ day }}-{{ month }}-{{ year }}'|replace({
'{{ day }}': form_widget(form.day),
'{{ month }}': form_widget(form.month),
'{{ year }}': form_widget(form.year),
})|raw }}
{{ form_widget(form.hour, { 'attr': { 'size': '1' } }) }} : {{ form_widget(form.minute, { 'attr': { 'size': '1' } }) }} : {{ form_widget(form.second, { 'attr': { 'size': '1' } }) }}
</div>
{% endspaceless %}
{% endblock datetime_widget %}
Run Code Online (Sandbox Code Playgroud)
我在表单视图模板中输入了这一行
{% form_theme form 'AcmeDashboardBundle:Form:fields.html.twig' %} …Run Code Online (Sandbox Code Playgroud) 我想在symfony 2 webapplication的每个页面上显示新的通知.我被建议使用Twig Extension.我在该扩展中创建了一个函数getFriendRequests,但我不知道在twig扩展中通过我的自定义存储库获取数据是否是一个好习惯:现在它给了我错误,它找不到getDoctrine方法.
<?php
namespace Tennisconnect\DashboardBundle\Extension;
class NotificationTwigExtension extends \Twig_Extension
{
public function getFriendRequests($user)
{
$users = $this->getDoctrine()
->getRepository('TennisconnectUserBundle:User')
->getFriendRequests();
return count($users);
}
public function getName()
{
return 'notification';
}
public function getFunctions()
{
return array(
'getFriendRequests' => new \Twig_Function_Method($this, 'getFriendRequests'));
}
}
Run Code Online (Sandbox Code Playgroud) 我在登录PhpMyAdmin时遇到了麻烦.当我输入我的凭据后按"登录"时,它会继续返回登录屏幕.几天前我可以完美登录.我不知道我做了什么导致了这一点.
我可以在shell中完美地登录mysql(mysql -D database -u user -ppassword).我的网站按预期运行.这可能是什么?
编辑:登录在Firefox中正常工作,但在Chrome或IE中无效.请参阅本主题中的回复#4:https://sourceforge.net/projects/phpmyadmin/forums/forum/72909/topic/4479151
谢谢.
我的表单中有一个集合小部件.这显示如下:
球队0球员
1输入球场1球员2输入球场
我想不显示'团队'这个词,'0'和'1'.我在fields.html.twig模板中有这个块,但不确定如何编辑它.
{% block collection_widget %}
{% spaceless %}
{% if prototype is defined %}
{% set attr = attr|merge({'data-prototype': form_row(prototype) }) %}
{% endif %}
{{ block('form_widget') }}
{% endspaceless %}
{% endblock collection_widget %}
{% block form_label %}
{% spaceless %}
<div class="hidden">
{{ block('generic_label') }}
</div>
{% endspaceless %}
{% endblock form_label %}
Run Code Online (Sandbox Code Playgroud)
ChallengeType表格:
class ChallengeType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('teams', 'collection', array(
'type' => new TeamType(),
'allow_add' …Run Code Online (Sandbox Code Playgroud) 我正在设置Codeception的Db模块,并希望使用Symfony 2的parameters.yml文件中的参数。
基本上是这样的:
paths:
tests: tests
log: tests/_log
data: tests/_data
helpers: tests/_helpers
settings:
bootstrap: _bootstrap.php
suite_class: \PHPUnit_Framework_TestSuite
colors: true
memory_limit: 1024M
log: true
modules:
config:
Symfony2:
app_path: 'app'
var_path: 'app'
environment: 'test'
Db:
dsn: "mysql:host='%test_database_host%';dbname='%test_database_name%'"
user: "%test_database_user%"
password: "%test_database_password%"
dump: tests/_data/test_data.sql
Run Code Online (Sandbox Code Playgroud)
占位符(例如%test_database_user%)不会被Symfony 2的app / config目录中的parameters.yml文件中的值替换。
parameters.yml:
parameters:
test_database_name: testdb
test_database_host: 127.0.0.1
test_database_user: root
test_database_password: thisismypassword
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
谢谢。
我有一个像这样的 docker-compose 文件设置:
version: '3'
services:
database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=my_database_name"
- "MYSQL_USER=my_database_user"
- "MYSQL_PASSWORD=my_database_password"
- "MYSQL_ROOT_PASSWORD=my_root_password"
ports:
- "33061:3306"
Run Code Online (Sandbox Code Playgroud)
卷: dbdata:
我正在尝试使用 root 用户和密码登录 mysql cli 客户端(首先进入容器本身):
mysql -uroot -pmy_root_password
Run Code Online (Sandbox Code Playgroud)
但我不断收到此错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Codeception中的验收测试中填写富文本编辑器字段(TinyMCE).
使用该fillField()功能不起作用,因为此"字段"实际上不是输入字段.它是一个iframe样式,看起来像一个花哨的textarea.
如何将一些文本设置到TinyMCE框的主体中?我想我正在寻找一个$I->setContent(xpathOrCSS)功能的添加.或者还有其他事情可以做到这一点吗?
tinymce acceptance-testing rich-text-editor ckeditor codeception
我试图通过从我的sencha touch 2前端调用put方法来更新我的mysql数据库中的记录.我正在调用此url/api/users/id,但我一直收到Symfony错误:
No route found for "PUT /api/users/1
Run Code Online (Sandbox Code Playgroud)
这是我在routing.yml文件中的内容
users:
resource: "Acme\MainBundle\Controller\UsersController"
prefix: /api
type: rest
Run Code Online (Sandbox Code Playgroud)
另外,我在User*s*Controller中设置了putUsersAction
public function putUsersAction($id, Request $request)
{
$values['birthdate'] = $request->get('birthdate');
$values['clubid'] = $request->get('clubid');
$em = $this->getDoctrine()->getEntityManager();
$user = $this->getDoctrine()
->getRepository('AcmeMainBundle:User')
->find($id);
$club = $this->getDoctrine()
->getRepository('AcmeMainBundle:Club')
->find($values['clubid']);
$user->setBirthdate($values['birthdate']);
$user->addClub($club);
$em->flush();
$view = View::create()
->setStatusCode(200)
->setData($user);
return $this->get('fos_rest.view_handler')->handle($view);
}
Run Code Online (Sandbox Code Playgroud)
为什么Symfony告诉我没有PUT/api/users/id路由?
编辑1:路由器:调试输出
[router] Current routes
Name Method Pattern
_wdt ANY /_wdt/{token}
_profiler_search ANY /_profiler/search
_profiler_purge ANY /_profiler/purge
_profiler_info ANY /_profiler/info/{about}
_profiler_import ANY /_profiler/import
_profiler_export …Run Code Online (Sandbox Code Playgroud) 我正在尝试在视图文件中呈现文本输入字段.我一直收到这个错误:在view-file.blade.php中找不到"类'表单'"
模板:
@extends('layouts.app')
@section('content')
<h1>New</h1>
{{ Form::open() }}
{{ Form::text('my-name') }}
{{ Form::close() }}
@endsection
Run Code Online (Sandbox Code Playgroud)
Composer.json
"require": {
"php": ">=7.0.0",
"fideloper/proxy": "~3.3",
"laravel/framework": "5.5.*",
"laravel/tinker": "~1.0",
"laravelcollective/html": "^5.5.0"
},
Run Code Online (Sandbox Code Playgroud)
app.php(配置)
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Notifications\NotificationServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
/*
* Package Service Providers...
*/
Collective\Html\HtmlServiceProvider::class,
/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class, …Run Code Online (Sandbox Code Playgroud) 首先:我得到的错误是:必须管理传递给选择字段的实体
我有这些实体: - 用户(属于一个或多个团队) - 团队(有一个或 2 个用户) - 挑战(有 2 个团队)
我想构建一个 ChallengeType 表单,用户可以在其中填写两个团队的两个用户并创建挑战。我想我需要一个嵌入式表单。
我制作了一个 TeamType Form 类:(我希望从中获得一个选择框,其中列出了所有用户)
<?php
namespace Tennisconnect\DashboardBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class TeamType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('players', 'entity', array(
'class' => 'TennisconnectUserBundle:User',
'multiple' => true
));
}
public function getName()
{
return 'team';
}
public function getDefaultOptions(array $options)
{
return array('data_class' => 'Tennisconnect\DashboardBundle\Entity\Team');
}
}
Run Code Online (Sandbox Code Playgroud)
这是 ChallengeType 表单类:
<?php
namespace Tennisconnect\DashboardBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class ChallengeType extends …Run Code Online (Sandbox Code Playgroud) 人们可以在我的网站上注册时事通讯.他们的电子邮件地址和其他个人信息将在数据库中加密.
现在,对于那个注册表,我想检查新输入的电子邮件地址是否已经在我的数据库中,但由于所有电子邮件都已加密,我无法真正检查,除非我遍历每个可能的电子邮件地址,解密它,看看是否它匹配新输入的电子邮件?那是对的吗?或者有更有效的方法吗?
symfony ×6
php ×3
twig ×3
codeception ×2
doctrine-orm ×2
ckeditor ×1
docker ×1
encryption ×1
forms ×1
laravel-5.5 ×1
mysql ×1
phpmyadmin ×1
security ×1
tinymce ×1
validation ×1
yaml ×1