问题描述
||
我正在S2中构建简单的CMS,并且以Article形式处理关系Category也没有什么麻烦。
CategoryType和操作的代码:http://codepaste.net/ahyoig,都类似于Symfony网站上的教程/手册中的内容。
表单看起来不错,但是当我处理数据时(也像手册中一样),我得到了错误:“在选择字段中有“”类型数组的预期参数,给定字符串“ \”,我现在不知道如何解决。
解决方法
我认为您的问题是因为您将选项“ 0”设置为“ 1”。这意味着表单类型将返回一个字符串值(因为您将
multiple
设置为false
是一个单一值),但是您的关系可能设置为多对多关系。
将“ 0”选项设置为“ 5”将向您的对象发送一个数组而不是字符串,这是应用程序所期望的。然后,如果您不喜欢HTML中CategoryType的列表框外观,则可以使用Symfony2中的表单主题以不同的方式呈现它。
希望这可以帮助,
马特
,您不需要CategoryType。 $ categories数组的创建也没有用。
最好的选择是使用本机实体表单类型:
<?php
use Doctrine\\ORM\\EntityRepository;
//...
$article = new Article();
$form = $this->get(\'form.factory\')
->createBuilder(\'form\',$article)
->add(\'category\',\'entity\',array
(
\'class\' => \'CMSBackBundle:Category\',\'query_builder\' => function(EntityRepository $er)
{
return $er->createQueryBuilder(\'c\')
->orderBy(\'c.title\',\'ASC\');
},\'expanded\' => false,\'multiple\' => false
)
// ...
->getForm();