我正在使用symfony2和doctrine2開發一個Web應用程序。Symfony2 + Doctrine2:QueryBuilder中的錯誤
我在應用程序中有一個窗體,它有一個從實體填充的下拉列表。我已經配置了一個query_builder來過濾下拉字段中的值。
public function buildForm(FormBuilderInterface $builder, array $options) {
$centerId = $this->centerId;
$builder->add("glCode", "entity", array(
"class" => "MyBundle:GlCode",
"query_builder" => function(EntityRepository $er) use($centerId) {
return $er->createQueryBuilder("g")
->join("g.account", "a")
->where("g.id NOT IN (SELECT g2.id FROM MyBundle:OtherFixedCost c JOIN MyBundle:GlCode g2)")
}
));
此代碼產生錯誤:預期學說\ ORM \查詢\詞法:: T_WITH,得到了「)」
我試圖做的查詢生成器我想同樣的事情做以下DQL:
SELECT g FROM MyBundle:GlCode g
JOIN g.account a
WHERE g.id NOT IN (
SELECT g2.id FROM MyBundle:OtherFixedCost c INNER JOIN MyBundle:GlCode g2
)
我不知道如果我失去了一些東西,但顯然不存在的方式,直接使用DQL在窗體類中。所以,我被迫使用QueryBuilder,但我得到了上述錯誤。