2

リレーションからのプロパティによってドクトリンエンティティをクエリすることが可能かどうか疑問に思っています。

例を次に示します。

Entity A fields :


-> title
-> content
-> description
-> date


Entity B fields :

-> title
-> link ( entity b )
-> date

次のような link->title プロパティでエンティティ B を照会することは可能ですか。

$this->getDoctrine()->getManager()->getRepository("acmeAppBundle:EntityB")->findBy(array( "title" => "test", "link.title" => "example" ) );

現在、エンティティ B リポジトリのカスタム関数を使用してこれを達成していますが、何か不足している可能性があります。

4

1 に答える 1

3

このようにfindByを使用することはできません。FindBy は、非常に基本的なものを取得するためだけに存在します。一般に、リポジトリ呼び出しを使用することがベスト プラクティスと見なされます。たとえば、ここで title が test であるすべてのオブジェクトを取得し、A からすべての B エンティティを取得する場合、エンティティ B は個別に取得されますが、リポジトリ呼び出しではjoin を使用できるため、1 つのクエリのみが DB に送信されます。

于 2014-10-14T12:25:22.803 に答える