Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 Symfony2在形式类型中使用原则_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php Symfony2在形式类型中使用原则

Php Symfony2在形式类型中使用原则,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我想在symfony2中创建一个optgroup,如下所示: $category_choices = array( array('Category 1' => array( '1' => 'Option 1...', '2' => 'Option 2...', '3' => 'Option 3...' )), array('Category 2' => array( '4' =&

我想在symfony2中创建一个optgroup,如下所示:

$category_choices = array(
    array('Category 1' => array(
        '1' => 'Option 1...',
        '2' => 'Option 2...',
        '3' => 'Option 3...'
    )),
    array('Category 2' => array(
        '4' => 'Option 4...',
        '5' => 'Option 5...'
    ))
);

$builder->add('category_list', 'choice', array(
    'label' => 'Category',
    'choices' => $category_choices
));

但是我想从数据库中获取类别选择,我需要对它们执行一些操作,并将它们添加到数组中。如何在相同的表单类型中执行此操作?(在表单类型中使用原则)

实际上有几种方法可以做到这一点

最合理的做法似乎是在表单中添加附加选项

除此之外,您还可以将表单(无论如何都应该)定义为服务,并将条令的实体管理器传递给它。symfony关于创建表单和服务的教程中介绍了这一点

最不合理的选择是在创建表单对象时手动在构造函数中传递原则或您的选择,请注意,这是完全非标准的,虽然最简单,但扩展性也最差。

可能重复的