我的symfony表格有问题。
首先是代码:
$test = array();
foreach($docGrp as $dc){
$test[] = $dc->getGruppenName();
}
$form = $this->createFormbuilder($document)
->add('gruppe', 'choice', array(
'choices' =>array(
'Gruppen' => $test,
),
'multiple' => true,
'expanded' => true,
))
->getForm();
我希望数组显示为复选框,并且它的值应该是数组中的值。但是,我得到一个例外
的例外“在呈现模板期间抛出异常(”警告:strtr()期望参数1为字符串,给定数组“
因此,如果我将选项更改为“Gruppen =>”测试“它可以工作。但它失败了目的,我需要从数组中获取这些值。
如果有人知道我的意思,帮助会很酷:)
到目前为止 阿迪答案 0 :(得分:3)
问题在于您在表单中传递选项的方式。因为$ test是一个数组,你实际上是通过一个2d数组作为选项选项,例如array('Gruppen'=> array(....)),这是不允许的。
我在Symfony中使用多选小部件时看到了2d数组的工作原理。随着维度增长,窗口小部件缩进选项。但它不适用于复选框。 你想要做的是传递一个数组:
$countries = array(
'au' => 'Australia',
'at' => 'Austria',
'az' => 'Azerbaijan',
...
);
数组键是值。
$form = $this->createFormbuilder($document)
->add('country_code', 'choice', array(
'choices' => $countries
'multiple' => true,
'expanded' => true,
)
);
答案 1 :(得分:3)
试试这段代码:
foreach($docGrp as $dc)
{
$test[] = array($dc->getGruppenID()=>$dc->getGruppenName());
}
$form = $this->createFormbuilder($document)
->add('gruppe', 'choice',
array('choices' =>$test
),
'multiple' => true,
'expanded' => true,
))
->getForm();