2017-06-30 37 views
0

配列の2番目のレベルでエンティティを表示するための正確な用語がわかりません。 私はエンティティ博士を持っています。あなたは医師のリストの下にエンティティの人を見ることができる場合symfonyの配列の2番目のレベルのエンティティを表示

enter image description here

私のイメージで私のリストを参照してください。 firstNameとlastNameのようなPersonエンティティを表示します。 facilityPackageDoctorsで同じものをどのように表示できますか?私はそれがパッケージ名とファシリティを表示し、それが現在表示しているのはfacilityPackageDoctorsのリストではないと思います。ここに私の問い合わせです

public function getFacilityPackageDoctors($facilityId){  
    $query = $this->createQueryBuilder('d') 
      ->leftJoin('d.facilityPackageDoctors', 'fpd') 
      ->leftJoin('fpd.facilityPackage', 'fp') 
      ->where('fp.facility = :parameter') 
      ->setParameter('parameter', $facilityId) 
      ->getQuery(); 
    return $query->getResult(); 
} 

私はこれに何かセットアップがありますか?私が使った言葉には申し訳ありません。

+0

' - > select( 'fp')'? –

答えて

0

はccKepへの

public function getFacilityPackageDoctors($facilityId){  
$query = $this->createQueryBuilder('d') 
     ->leftJoin('d.facilityPackageDoctors', 'fpd') 
     ->leftJoin('fpd.facilityPackage', 'fp') 
     ->addSelect('fp as facility') 
     ->where('fp.facility = :parameter') 
     ->setParameter('parameter', $facilityId) 
     ->getQuery(); 
return $query->getResult(); 
} 
+0

エラー:[セマンティクエラー]行0、col -1の 'SELECT fp FROM'の近くにエラーが発生しました。エラー:少なくとも1つのルートエンティティエイリアスを選択せず​​に、ID変数を通じてエンティティを選択できません。 – user3818576

+3

'addSelect'を試して、' createQueryBuilder( 'd') 'の暗黙の選択を上書きしないようにしてください。 – ccKep

0

おかげのようなものを試してみてください。私は解決策を見つけたのです。addSelect()

public function getFacilityPackageDoctors($facilityId){ 

     $query = $this->createQueryBuilder('d') 
      ->leftJoin('d.facilityPackageDoctors', 'fpd') 
      ->leftJoin('fpd.facilityPackage', 'fp') 
      ->addSelect('fpd') 
      ->where('fp.facility = :facilityId') 
      ->setParameter('facilityId', $facilityId) 
      ->getQuery(); 

     return $query->getResult(); 
    } 
関連する問題