如何使用服务填充表单中的实体字段? (通过query_builder)

时间:2013-05-05 19:54:07

标签: forms symfony query-builder

在我的Symfony2项目中,我总是使用“Manager Services”来解耦所有模型层。 (例如WorldManagerService,UserManagerService等...)

问题是我不知道如何使用这些服务来填充表单中的实体字段(例如表单中的语言组合框字段)

代码:

$builder->add('idlanguage', 'entity',
    array(
        'class' => 'MyBundle:Language',
        'property' => 'name',
        'empty_value' => '',
        'query_builder' => function (EntityRepository $repository)
        {
            return $repository->createQueryBuilder('l')
                ->where('l.idstatus = :status')
                ->setParameter('status', '1');
        }
    ));

然后,在我的项目中声明服务:

services:
    my.world.manager:
        class: %my_world.manager_service.class%
        arguments: [@doctrine.orm.entity_manager]

我想做类似的事情:

$builder->add('idlanguage', 'entity',
    array(
        'class' => 'MyBundle:Language',
        'property' => 'name',
        'empty_value' => '',
        'query_builder' => function (WorldManagerService $wms)
        {
            return $wms->getAllActiveLanguages();
        }
    ));

考虑到通常我需要注入或调用(使用容器类)服务,我不知道该怎么做。

如何使用服务填写表单实体?

0 个答案:

没有答案