2016-12-31 4 views
0

内のエンティティのIDを取得し、これと呼ばれているレビュー[]、それが格納します。私は同じエンティティの配列を格納するエンティティを持つ配列

IDを、私のコントローラ、Iループ内の現在レビュー

保存評価の配列を:

IDを、私は評価からreviewIDを使用してレビュー配列からレビューオブジェクトをつかむにはどうすればよい

をreviewID?

これは私がこれまで何をやったかである:あなたがやったとしてPHPで

foreach($ratings as $rating) 
{ 
    // Grab the review from the id stored in rating 
    $review = $reviews->findById ?? 
} 
+0

別の質問から「サブクエリ」問題を解決するようには思われませんが、今ではこのコードで別のものを試してみてください...もっとコードを投稿し始めるのは良いことです...私はここでもう一度尋ねますが、あなたのエンティティファイルを投稿します...あなたは関係をどのようにしたか分かりません...デフォルトでは、親を取得するだけで十分です( '$ rating- > getReview() ')、つまり、エンティティの関係が正しく行われたかどうかを確認します。 – Preciel

+0

@Precielエンティティは、OneToMany/ManyToOneの関係であり、完全にリンクされています。私はこのforeachループの最も効率的な方法を理解しようとしています – KTOV

+0

それはあなたがそれらをどのようにリンクしているかわからないという事実を変えません...あなたは親と子でどの変数名を使用しました...まだ私の最初のコメントにあなたの答えがあるはずですが、あなたのエンティティで関数の名前がどのようになっているのかわからないので、正確に '$ ratings-> getReview()'であるとは確信していません。あなたのコードを公開するには、名前を変更するのに時間を費やしてください。 – Preciel

答えて

0

、あなたはforeachループを使用することができますが、あなたはまた、のようなforeachループを使用することができます。

foreach($ratings as $id->$rating) { 
    //... 
} 

あなたの質問にお答えします。

+0

彼は '$ id - > $ rating'を表示するので、"未定義の変数の評価 " – KTOV

+0

を取得します。私は彼が '$ id-> rating 'を意図したと思う。 –

1

@Nietvoordekatが作成しようとしているポイントを参照してください。

これを試してみてください:上記の場合

foreach($ratings as $key => $value){ 
    if ($key == 'reviewID'){ 
     $repo = $this->getDoctrine()->getRepository('AppBundle:Review'); 
     $review = $repo->findOneBy(array('id' => $value)); 
    } 
} 

、私はわからないんだけど、あなたはエンティティReviewと呼ばれていた場合やレビューエンティティIdidと呼ばれます。だからあなたはそれを変更する必要があるかもしれません。しかし、私はこれがあなたを助けるはずだと思います。

関連する問題