【问题标题】:Symfony 2.6: Collection as FormSymfony 2.6:作为形式的集合
【发布时间】:2015-05-09 04:20:37
【问题描述】:

我有一个包含实体的数组。我知道 symfony 有一个collection type,但我想要的并没有按预期工作。我为单个实体创建了一个 FormType,为集合创建了一个 FormType(集合的 formtype 代码):

$builder
            ->add('list', 'collection', array(
                'label' => 'list',
                'type' => new SingleItemType(),
                'allow_add' => true,
                'allow_delete' => true,
                'by_reference' => false
            ));

现在我尝试创建一个表单

$arr = array(new Item(), new Item(), new Item());
$this->createForm(new CollectionListType(), $arr);

但这不起作用;我收到一个错误,这意味着我应该将“Item”设置为 data_class,如果我这样做,则会出现另一个错误,这意味着我应该将 data_class 设置为 null。

另一种方法是创建一个虚拟实体来保存我的 Item-Entities 数组,但这也不起作用。

是否有一种简单的方法可以将实体列表显示为集合形式?

问候

【问题讨论】:

标签: symfony


【解决方案1】:

我不确定是否完全理解您的问题,但我认为您必须首先使用 getList()/setList() 创建一个实体。在您的集合字段中,您可以添加一个新的“默认”实体,将值传递给选项数组中的“数据”键。

【讨论】:

  • 杰普。这是唯一的工作方式。我希望我可以直接将一个数组传递给表单构建器,例如 array('list' => array(new Item(), new Item() ..));但只出现奇怪的错误。
猜你喜欢
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多