php - symfony 表单选择字段 : set choices option default data from external datasource

标签 php symfony

如何使用外部数据数组填充选择选项?

$builder->add('gender', 'choice', array(
    'choices' => [array from webservice or other class]
));

文档仅显示简单的静态数组 http://symfony.com/fr/doc/2.7/reference/forms/types/choice.html#choices

我试过了:

Controller :

$event = new Event();
$form = $this->createForm(new EventType($this->get('api')), $event);

表格:

class EventType extends AbstractType
{
    protected $myservice;

    public function __construct($myservice)
    {
        $this->myservice = $myservice;
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('titre')
            ->add('id_rubrique', 'choice', array(
                'choices' => $this->myservice->getRubriques
        ;
    }

    ....
}

这是正确的解决方案吗?

最佳答案

将表单定义为服务:

services:
    my.form:
        class: EventType
        arguments:
            - @api

然后在 Controller 中:

$event = new Event();
$form = $this->createForm('my.form', $event);

关于php - symfony 表单选择字段 : set choices option default data from external datasource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932789/

相关文章:

php - 如何在 symfony2 的独白日志记录中定义 channel 和级别

php - Symfony - 使用注释指定服务不共享

php - preg_match_all 不返回输出数组中的任何内容

php - 如何在mysql中选择两行并通过获取id查看

php - 在 MySQL 之后保留 PHP 排序

php - Symfony - 将 Sonata Admin 过滤器运算符设置为 "is equal to"作为默认选项

model-view-controller - 在Symfony2中的模板中排序: using Twig to sort a collection of objects by property

php - 尝试测试 Symfony 2 应用程序时出现 SQL 错误 - 列已存在,表丢失

php - php-我应该在最终用户网站上使用的错误报告级别是完整的

PHP/MySQL 检查值是否存在,如果存在则不插入