2014-01-21 123 views
0
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; 
} 

Category類DQL查詢多對一單向關係

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() 
} 
} 

有沒有辦法讓所有物品訂購?

回答

1

你有一個血腥orderBy條款,而不是Ë血腥

而且protectted,而不是$ordering酒店的前面保護

下面應該工作:

return $this->createQueryBuilder('i') 
    ->leftJoin('i.category', 'c') 
    ->orderBy('c.ordering', 'ASC') 
    ->getQuery() 
    ->getResult();