2017-02-16 8 views
-1

私は解決できない問題があります。 私はテーブルに参加しようとしているために、エンティティ、持っている:Doctrine without Entityでテーブルを結合する

/** 
    * @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) 

問題があり、

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

それは私のDQLクエリで実体なしでテーブルを結合することが可能です: - property_featured_attribute - このテーブルということなので、私のようなエラーが取得エンティティしていませんか?

答えて

1

DQLの目的は、オブジェクトモデルに対してクエリを行うことなので、DQLを使用してこれを行うことはできません。 DQLは、リレーショナル・スキーマではなく、オブジェクト・モデルの問合せ言語です。

しかし、あなたはDBALを使用してプレーンなクエリを行うことができます。

$conn = $this->get('database_connection'); 
$res = $conn->query('SELECT...'); 
関連する問題