2017-02-16 48 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")}) 
    */ 

我需要在我DQL代碼加入表表名property_featured_attribute

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

的問題是,此表 - property_featured_attribute - 沒有實體,所以我得到這樣一個錯誤:

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

是否有可能加入表沒有實體在我的DQL查詢?

回答

1

你不能使用DQL來做到這一點,因爲DQL的目的是查詢你的對象模型。 DQL是您的對象模型的查詢語言,而不是您的關係模式。

但是你可以使用DBAL使普通查詢:

$conn = $this->get('database_connection'); 
$res = $conn->query('SELECT...');