私は Symfony2 クエリビルダーを初めて使用します。これが私がしていることです:
$builder
->add('access', 'entity', array(
'label' => 'Behörigheter',
'multiple' => true, // Multiple selection allowed
'expanded' => true, // Render as checkboxes
'property' => 'name', // Assuming that the entity has a "name" property
'class' => 'BizTV\ContainerManagementBundle\Entity\Container',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) use ($company) {
$qb = $er->createQueryBuilder('a');
$qb->where('a.containerType IN (:containers)', 'a.company = :company');
$qb->setParameters( array('containers' => array(1,2,3,4), 'company' => $company) );
return $qb;
}
));
エンティティを containerType (リレーショナル フィールド、FK) で並べ替えたい場合を除いて、正常に動作します。
この行を追加すると:
$qb->orderBy('a.containerType', 'ASC');
エラーが表示されます: パス式が無効です。StateFieldPathExpression である必要があります。
では、これは何ですか? where 句ではリレーション フィールド containerType を使用できますが、sort 句では使用できません。それとも、他に何か不足していますか?