具有doctrine querybuilder和leftjoin的Symfony 2 Entity字段类型

时间:2014-02-08 23:20:41

标签: php symfony doctrine

我需要一些Symfony 2实体类型字段的帮助。我有一个带表单生成器的indexAction函数:

    $form = $this->createFormBuilder($add)
    ->add('model', 'text')
    ->add('adType', 'entity', array(
        'class' => 'FrontendAdBundle:AdType',
        'property' => 'name', // ? adTypeTransl.name needed
        'query_builder' => function(EntityRepository $er) {
            global $request;
            $result = $er->createQueryBuilder('t')
            ->leftJoin('t.adTypeTransl', 'tr')
            ->where('tr.lang = hr');

            return $result;
        },
    ));

我有两个名为“AdType”的数据库表& “AdTypeTransl”。

ADTYPE: id,system_name

1 | sell
2 | rent

AdTypeTransl: id,lang,ad_type,name

1 | hr | 1 | Prodaja
2 | hr | 2 | Najam

如您所见,我想将adTypeTransl留在adType中,并显示ID值为Adtype和AdTypeTransl文本的选择列表。

我使用YML生成实体。这就是我现在所拥有的。

AdType
    oneToMany:
        adTypes:
            targetEntity: AdTypeTransl
            mappedBy: adTypeCat

AdTypeTransl
    manyToOne:
        adTypeCat:
            targetEntity: AdType
            inversedBy: adTypes
            joinColumn:
                name: ad_type
                referencedColumnName: id

我只能在我的选择列表中获得一个表值,如下所示:

<select>
    <option value="adType.id">adType.system_name</option>
</select>

但我真正需要的是:

<select>
    <option value="adType.id">adTypeTransl.name</option>
</select>

问题出在哪里?

0 个答案:

没有答案