Запрос отношения m:n для n = null – возвращает ошибку Lexer.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Запрос отношения m:n для n = null – возвращает ошибку Lexer.

Сообщение Anonymous »

Построение запроса для выбора M сущностей, у которых нет соответствующих N сущностей, возвращает ошибку при следующем запросе:

return $this->getEntityManager()
->createQuery(
'SELECT p FROM VolVolBundle:Opportunity p '
. 'LEFT JOIN VolVolBundle:Volunteer v'
. 'WHERE v.id is null '
. 'ORDER BY p.organization ASC'
);


возвращает ошибку:


Ожидаемая Doctrine\ORM\Query\Lexer: :T_WITH, получен 'v'


Однако следующий оператор SQL возвращает непустой набор результатов:

select o.id from opportunity o
left outer join opportunity_volunteer ov on o.id = ov.opportunity_id
left outer join volunteer v on ov.volunteer_id = v.id
where ov.id is null;


где возможность_волонтёр — это связывающая таблица

Определение взаимосвязи объектов возможной сделки

/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Volunteer", inversedBy="opportunities", cascade={"persist"})
* @ORM\JoinTable(name="opportunity_volunteer",
* joinColumns={@ORM\JoinColumn(name="opportunity_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="volunteer_id", referencedColumnName="id")}
* ))
*/
protected $volunteers;

public function addVolunteer(\Vol\VolBundle\Entity\Volunteer $volunteer) {
$volunteer->addOpportunity($this);
array_push($volunteers, $volunteer);
}

public function getVolunteers() {
return $this->volunteers;
}


Определение отношений с волонтерской организацией

/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Opportunity", mappedBy="volunteers")
*/
protected $opportunities;

public function addOpportunity(\Vol\VolBundle\Entity\Opportunity $opportunity) {
array_push($opportunities, $opportunity);
}

public function getOpportunities() {
return $this->opportunities;
}


Подробнее здесь: https://stackoverflow.com/questions/238 ... exer-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»