2017-02-16 7 views
-1

У меня есть проблема, которую я не могу решить. У меня есть объект, к которому я пытаюсь присоединиться к столу:Присоединиться к таблице в Доктрине без сущности

/** 
    * @var ArrayCollection 
    * 
    * @ORM\ManyToMany(targetEntity="FeaturedAttribute") 
    * @ORM\JoinTable(name="property_featured_attribute", 
    *  joinColumns={@ORM\JoinColumn(name="property", referencedColumnName="id")}, 
    *  inverseJoinColumns={@ORM\JoinColumn(name="featured_property", referencedColumnName="id")}) 
    */ 

Мне нужно присоединиться таблицы таблицу с именем property_featured_attribute в моем DQL-код:

LEFT JOIN property_featured_attribute pfa WITH pfa.property = p.id 
WHERE pfa.featured_property IN (:attrs) 

Проблема заключается в том, что эта таблица - property_featured_attribute - не Entity, поэтому я получаю сообщение об ошибке, как:

'Error: Class 'property_featured_attribute' is not defined.'

можно ли присоединиться таблицу без лица в моем DQL-запрос?

ответ

1

Вы не можете сделать это с помощью DQL, потому что цель DQL - делать запросы по вашей объектной модели. DQL - это язык запросов для вашей объектной модели, а не для вашей реляционной схемы.

Но вы можете сделать простой запрос с использованием DBAL:

$conn = $this->get('database_connection'); 
$res = $conn->query('SELECT...'); 
Смежные вопросы