基于选定类别儿童的学说获取实体

时间:2014-10-22 17:19:36

标签: php mysql symfony doctrine-orm query-builder

我希望获得与所选类别的孩子相关的记录。

例如,我们有一个这样的类别树:

主要:

  1. 水果
  2. 汽车
  3. 儿童:(父ID不能为空!在此示例中:父ID = 1)

    1. 苹果
    2. 香蕉
    3. 我们有一个像这样的实体(db记录):

      id = 1, category_id = 2, title = This records must belong to ORANGE category!
      

      当我们从数据库中选择Fruit类别时,我必须得到与Fruit本身及其子类别相关的entites。

      我试过了什么?

      $qb
      ->select('i.id, i.title, i.slug, i.created_at, c.file')
      ->from('CSImageBundle:Image', 'i')
      ->leftJoin('i.taxonomies', 'tx')
      ->leftJoin('tx.children', 'st')
      ->where($qb->expr()->in('tx.id', 'st.id'));
      

      ...失败

      我该怎么办?

1 个答案:

答案 0 :(得分:0)

很难说没有错误消息,但它看起来像你的选择中的一个问题,c.file在哪里?

$qb
->select('i.id, i.title, i.slug, i.created_at, c.file') //should this be i.file? or tx.file? or st.file?
->from('CSImageBundle:Image', 'i')
->leftJoin('i.taxonomies', 'tx')
->leftJoin('tx.children', 'st')
->where($qb->expr()->in('tx.id', 'st.id'));