【发布时间】:2012-02-15 16:33:28
【问题描述】:
我正在尝试使用奏鸣曲捆绑创建一个简单的表单。我在尝试加载数据实体类型字段时遇到一个问题。我知道这是有效的:
$formMapper->add( 'foo', 'entity', array(
'class' => 'myVendorMyBundleBundle:Foo',
'property' => 'id',
'query_builder' => function(FooRepository $er) {
return $er->createQueryBuilder('qb')
->add( 'select', 'f' )
->add( 'from', 'myVendorMyBundleBundle:Foo f' )
},
'label' => 'foo'
) );
问题是我不想显示实体 id,我想显示它的名称,它位于相关表中。我尝试在 createQueryBuilder 方法中使用 join 语句,但我没有让它工作:
$formMapper->add( 'foo', 'entity', array(
'class' => 'myVendorMyBundleBundle:Foo',
'property' => 'b.name',
'query_builder' => function(FooRepository $er) {
return $er->createQueryBuilder('qb')
->add( 'select', 'f' )
->add( 'from', 'myVendorMyBundleBundle:Foo f' )
->add( 'join', 'myVendorMyBundleBundle:Bar b' )
},
'label' => 'foo'
) );
我该怎么做?
【问题讨论】:
-
请添加您收到的错误。
-
我不明白为什么要使用这样的东西来自己制作一个普通的更快的 sql 字符串
-
我在尝试获取名称属性时遇到此错误:“MyBundle\Entity\Foo 名称是一个栏”中的属性“nom”或方法“getName()”或方法“isName()”都不存在实体属性。看来我只能从 foo 实体获取信息...
标签: php symfony doctrine-orm