Symfony2表格 - 复杂的“财产”选项

时间:2013-12-10 14:23:48

标签: symfony

我有以下实体,主要属性为:

  • 地点
    • ID
    • 名称
    • 地址
    • LOCATION_ID
    • 高度
  • 研究所
    • LOCATION_ID
    • 缩写符号
    • DEPARTEMENT

Station和Institute从Location“继承”:这两个表中的任何location_id引用Location表中的id。

正如您所猜测的那样,我们的想法是,不同类型的位置具有共同的特征(在位置中收集),但也有独立的位置(在Station和Institute表中收集)。

我还有一个实体“物品”,无论是车站还是研究所,物品都可以放置并移动到某个位置。

因此,在我的“移动项目”表单中,我需要在下拉列表中显示所有位置以选择所需的位置。为此,我使用GenemuFormBundle - select2。

我的问题:我想显示:

  • “location.name - station.trigam”如果location.type是Station
  • “location.name - intitute.abreviation”如果location.type是Institute

我知道“选择”下拉列表中显示的内容由“属性”选项决定:

$builder->add('location', 'genemu_jqueryselect2_entity', array(
            'class'         => 'MyBundle:Location',
            'property'      => 'labelSelect2', 
            'query_builder' => function(LocationRepository $lr) {
                    return $lr->createQueryBuilder('l')
                              ->orderBy('l.name', 'ASC');}
        ))

“labelSelect2”指的是我的实体Location的函数getLabelSelect2()。 但不幸的是,即使我知道location.type,我也不知道如何从函数Location :: getLabelSelect2()访问station.trigram或institute.abreviation

知道怎么做吗?

0 个答案:

没有答案