0

我在 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 =>”test”,它会起作用。但它违背了目的,我需要将这些值从数组中取出。

如果有人知道我的意思,帮助会很酷:)

到目前为止阿迪

4

2 回答 2

3

问题在于您在表单中传递选择的方式。因为 $test 是一个数组,所以您实际上是在传递一个二维数组作为选择选项,例如 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,
    )
);
于 2012-06-06T12:06:30.060 回答
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();
于 2012-09-20T13:37:28.857 回答