2017-10-14 8 views
1

私は画像やFacebookのような関連するコメントを表示したいという小さなプログラミング課題に取り組んでいます。2つの異なるクエリを渡す際にエラーが発生し、PHPで表示されます。

私のイメージは1つのテーブルにあり、1つのテーブルにコメントします。私は別のテーブルからそれらの両方を取得しており、これらの結果を表示したいと思います。そして、私はその関連記事に基づいてこれらの結果を示したいと思います。しかし、これは私にエラーを与える。すべてのコメントには関連するpost_idがあり、実際には投稿のpost_idです。

ここに私のコードです。

モデル:それはまだ存在しない場合

public function load_posts_with_comments(){ 
    $posts = image_post::all(); // loading all posts 
    $comments = commenting::all(); // loading all comments 
    return view('home_page_of_posts', [ 
     'posts' => $posts, 
     'comments' => $comments 
    ]); // passing it to view, there I will do it through for each nested loop but it does not work. 
} 
+0

それはどのように動作するようにdoesntの?データはビューに送信されませんか?コメントは投稿用ではありませんか? –

+0

あなたはどのように表示していますか?そして、あなたはどんなエラーを出していますか? – C2486

+0

私は、データが正しいことをエコーすることによってチェックしました。それは正しいformateで印刷されません..それは投稿のためのエラー –

答えて

3

は、投稿やコメントのモデル間のhasMany関係を作成します。サムシングのように:

public function comments() 
{ 
    return $this->hasMany(Comment::class); 
} 

は次に、各記事に関連するコメントを読み込むためにwith()メソッドを使用します。このような何かが動作します:

public function loadPostsWithComments() 
{ 
    $posts = Post::with('comments')->get(); 

    return view('home_page_of_posts', compact('posts')); 
} 

をブレード・テンプレートでは、あなたが投稿とコメントを反復処理することができます。

@foreach ($posts as $post) 
    {{ $post->title }} 
    @foreach ($post->comments as $comment) 
     {{ $comment->title }} 
    @endforeach 
@endforeach 
+0

私はlaravelに新しいので、他のオプションがあります。 –

+2

@DANISHTAYYIBあなたは他のオプションは必要ありません。オプションのどれも簡単ではありません。 Laravelのドキュメントを読むだけで、より明確になります。 –

関連する問題