Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony表单集合类型字段_Php_Forms_Symfony_Collections - Fatal编程技术网

Php Symfony表单集合类型字段

Php Symfony表单集合类型字段,php,forms,symfony,collections,Php,Forms,Symfony,Collections,嗨,我是Symfony 2的新手。到现在为止,我已经处理这个问题好几个小时了,所以我不得不问comunity 我有两个实体 用户-->语言(OneToMany) 用户实体 /** * * @ORM\OneToMany(targetEntity="User_Language", mappedBy="user") */ private $languages; public function __construct() { $this->languages = new Arra

嗨,我是Symfony 2的新手。到现在为止,我已经处理这个问题好几个小时了,所以我不得不问comunity

我有两个实体

用户-->语言(OneToMany)

用户实体

/**
 * 
 * @ORM\OneToMany(targetEntity="User_Language", mappedBy="user")
 */
private $languages;

public function __construct() {
    $this->languages = new ArrayCollection();
}
用户语言实体

/** @ORM\Column(type="string", length=50) */
private $language;

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="languages")
 */
private $user;
用户\语言类型

public function buildForm(FormBuilderInterface $builder, array $options) {

    $builder
        ->add( 'language' );
}
我正在尝试构建一个表单,用户可以在其中添加/编辑/删除他的语言

数据库中的用户语言

从数据库(在控制器中)获取数据时- 通过$user->GetLanguages()我得到了persistantCollection, 使用QueryBuilder()我得到了一个数组

有没有办法,如何将其传递到CreateForm()函数中

$form = $this->createForm( User_LanguageType::class, $user->getLanguages() );
我有两个错误:

The form's view data is expected to be an instance of class ArpanetRuzicja7EstatesBundle\Entity\User_Language, but is an instance of class Doctrine\ORM\PersistentCollection.

设置
'data\u class'=>null
,没有帮助


非常感谢。

如果您想允许用户添加/删除任意数量的语言,您必须使用集合类型字段。

在这里使用它:

为用户实体创建表单,在用户\语言类型上添加集合字段类型,并且必须添加一些javascript来管理添加和删除语言

我没有写所有的例子,symfony文档已经非常适合了:)

但我假设您已经有一个表单/用户类型,您可以添加集合字段:

->add('tags', 'collection', [
        'type'         => New User_LanguageType(),
        'allow_add'    => true,
        'allow_delete' => true,
    ]);
(适用于symfony3)


数组短语法[]需要php5.4分钟,如果不使用array()

如果要允许用户添加/删除任意数量的语言,则必须使用集合类型字段。

在这里使用它:

为用户实体创建表单,在用户\语言类型上添加集合字段类型,并且必须添加一些javascript来管理添加和删除语言

我没有写所有的例子,symfony文档已经非常适合了:)

但我假设您已经有一个表单/用户类型,您可以添加集合字段:

->add('tags', 'collection', [
        'type'         => New User_LanguageType(),
        'allow_add'    => true,
        'allow_delete' => true,
    ]);
(适用于symfony3)


数组short-syntax[]需要php5.4分钟,如果不使用,则使用array()

非常有效。A我不知道我必须在UserType中添加语言。非常感谢,你是我的救命恩人。很有魅力。A我不知道我必须在UserType中添加语言。非常感谢,你是我的救星。
->add('tags', 'collection', [
        'type'         => User_LanguageType::class,
        'allow_add'    => true,
        'allow_delete' => true,
    ]);