2015-09-14 2 views
1

У меня есть следующая структура Entities в моем проекте. «SocieteDiffuseur» означает CompanyDifuser, платит означает страну и стоимость Prix. Цена.Примечание: Неопределенный индекс: joinColumns doctrine 2 + symfony 2

class SocieteDiffuseur extends Societe 
{ 

/** 
* @ORM\ManyToMany(targetEntity="MG\UtilityBundle\Entity\Pays", inversedBy="societeDiffuseur") 
* @ORM\JoinColumn(nullable=false, name="pays_de_diffusion") 
*/ 
protected $paysDiffs; 

Страна:

class Pays 
{ 
/** 
* 
* @ORM\ManyToMany(targetEntity="MG\UserBundle\Entity\SocieteDiffuseur", mappedBy="paysDiffs") 
*/ 
private $societeDiffuseur; 

Цена:

class Prix 
{ 
/** 
* @ORM\ManyToMany(targetEntity="MG\UtilityBundle\Entity\Pays") 
* @ORM\JoinTable(name="prix_pays", 
*     joinColumns={@ORM\JoinColumn(name="prix_id", referencedColumnName ="id")}, 
*     inverseJoinColumns={@ORM\JoinColumn(name="pays_id", referencedColumnName="id", unique=false)} 
*    ) 
*/ 
private $pays; 

Хорошо, теперь я хочу, чтобы цена (при), которые имеют ту же страну (платит), чем компания (societediffuseur).

Так что в моем контроллере я думал, что я должен был сделать:

$paysDiffs = $societe->getpaysDiffs(); 
$prix = $em->getRepository('MGVenteBundle:Prix')->findByPays($paysDiffs); 
dump($prix); exit; 

И я получаю эту ошибку: Примечание: Undefined индекс: joinColumns.

Итак, что мне делать?

ответ

1

$societe->getpaysDiffs(); возвращает массив. findByPays() требует аргумент типа Pays, а не массив.

Вам нужно написать собственный запрос, чтобы получить необходимые вам Prix-es. См. Дополнительную информацию о том, как это сделать: http://symfony.com/doc/current/book/doctrine.html#querying-for-objects