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;
}
类别类
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;
}
我想查询该类别中的订购属性订购的所有商品。这是我试过的查询。我是SQL / DQL的新手,不知道如何访问查询中的排序属性。此查询是MenuItemRepository.php文件。
class MenuItemRepository extends EntityRepository
{
public function getOrderedMenu()
{
return $this->createQueryBuilder('i')
->select('i')
->orderBy('i.catagory.ordering', 'ASC') //????
->getQuery()
->getResult()
}
}
有没有办法让订购的所有商品都订购?
答案 0 :(得分:1)
您的orderBy
子句中有 cat gory 而不是 cat e gory !
在您的$ordering
财产前面进一步受保护而不是受保护。
以下内容应该有效:
return $this->createQueryBuilder('i')
->leftJoin('i.category', 'c')
->orderBy('c.ordering', 'ASC')
->getQuery()
->getResult();