Sql Symfony中多通单向关系的DQL查询
类别类Sql Symfony中多通单向关系的DQL查询,sql,symfony,doctrine,dql,Sql,Symfony,Doctrine,Dql,类别类 class MenuItem { /** * @ORM\Column(type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\ManyToOne(targetEntity="MenuCategory") * @ORM\JoinColumn(name="menu_id", referencedColumnName="id") */ protected
class MenuItem
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="MenuCategory")
* @ORM\JoinColumn(name="menu_id", referencedColumnName="id")
*/
protected $catagory;
}
我想查询类别中由ordering属性排序的所有项目。这是我尝试过的问题。我是SQL/DQL新手,不知道如何访问查询中的ordering属性。此查询是MenuItemRepository.php文件中的查询
class MenuCategory
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $name;
/**
* @ORM\Column(type="integer")
*/
protectted $ordering;
}
有没有一种方法可以按顺序订购所有物品 您的orderBy
子句中有cata血污,而不是cate血污
进一步protected而不是$ordering
属性前面的protected
以下方面应起作用:
class MenuItemRepository extends EntityRepository
{
public function getOrderedMenu()
{
return $this->createQueryBuilder('i')
->select('i')
->orderBy('i.catagory.ordering', 'ASC') //????
->getQuery()
->getResult()
}
}
return $this->createQueryBuilder('i')
->leftJoin('i.category', 'c')
->orderBy('c.ordering', 'ASC')
->getQuery()
->getResult();