如何完成此和其他Doctrine查询?

时间:2015-02-12 19:05:32

标签: php doctrine-orm doctrine

我认为这很容易用Doctrine做,但我不知道怎么做。我确定我遗漏了一些基本的东西。

    Doctrine_Query::create()
                    ->from('Product p')
                    ->leftJoin('p.Category c' )
                    ->leftJoin('c.Image i')
                    ->where('p.name LIKE ?', '%'.$search.'%'),

哪个有效,但我试图选择类别并尝试了这个,但它没有使用错误"未知列parent_id"

    Doctrine_Query::create()
                    ->from('Product p')
                    ->leftJoin('p.Category c' )
                    ->leftJoin('c.Image i')
                    ->where('p.name LIKE ?', '%'.$search.'%')
                    ->andWhere('c.parent_id NOT LIKE ?', '1'),

如何更改此Doctrine查询以包含andWhere语句?

1 个答案:

答案 0 :(得分:0)

这有点猜测,因为我不知道你的架构。 DQL查询使用属性而不是数据库列名。我怀疑该类别有一个叫做父母的属性?

类似于:

Doctrine_Query::create()
    ->select('p,c,i')  // Eager load
    ->from('Product p')
    ->leftJoin('p.Category c' )
    ->leftJoin('c.Image i')
    ->leftJoin('c.Parent parentCategory') // Join the parent entity
    ->where('p.name LIKE ?', '%'.$search.'%')
    ->andWhere('parentCategory.id NOT LIKE ?', '1'),