2013-04-14 16 views
0

我找不到有關我在實體內部看到的「ORM表達式」的好文檔,所以我有點混淆。獲取在實體內使用ORM表達式的所有行

我有這個我用戶裏面實體:

/** 
* @var ArrayCollection $administered 
* 
* @ORM\ManyToMany(targetEntity="Done\PunctisBundle\Entity\Brand", inversedBy="admins") 
* @ORM\JoinTable(name="user_brand_administered") 
**/ 
protected $administered; 

這是工作正常,但我需要的東西更簡單,我需要給予得到品牌的所有值VAR 實體,而不是像下面的代碼那樣加入表user_brand_administrated。我怎樣才能做到這一點?

回答

0

爲什麼你想要這裏的所有價值?

使用自定義的EntityRepository,你可以使用一種方法來檢索你想要的對象。

例如。

class UserRepository extends EntityRepository 
{ 
    public function findOneWithRelation($id) 
    { 
     $qb = $this->createQueryBuilder('u') 
      ->select('u, b') 
      ->leftJoin('u.administered, b') 
      ->where('u.id = :id') 
      ->setParameter('id', $id) 
      ->getQuery() 
      ->getResult(); 
    } 
} 

,並附這個倉庫與用戶實體:

/** 
* @Entity(repositoryClass = "Path\To\UserRepository") 
*/ 
class User 
{ 
// ... 
} 

這樣你就可以用所有的品牌來獲取用戶。

希望它有幫助。

最好的方面。

+0

我想你誤解了我,我只需要品牌表中的所有行格式化爲一個symfony對象當然 – DomingoSL

相關問題