いいえ、
私はこれを理解することはできません。 Eloquentモデルは私にとって初めてのものです。
特定の投稿のコメントを取得しようとしています。
これは私のポストモデルです:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
public function likes()
{
return $this->hasMany('App\Like');
}
public function comments()
{
return $this->hasMany('App\Comment');
}
}
コメントモデル:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
public function post()
{
return $this->belongsTo('App\Post');
}
}
ルート:
public function getDashboard(){
$posts = Post::orderBy('created_at', 'desc')->get(); // MySQL ORDER BY
$comments = Comment::orderBy('created_at', 'desc')->get();
return view('dashboard', ['posts' => $posts], ['comments' => $comments]);
}
($のコmmentsは不要かもしれません)
ビュー:?私は、エラーメッセージが表示されました
@while($comments->post_id = $post->id)
<p>{{$comments->body}}</p>
@endwhile
「未定義のプロパティ:\データベースを照らすを\私が使用して、コメントをループしようとした
@foreach($posts as $post)
<article class="post" data-postid=" {{ $post->id }} ">
<p>{{ $post->body }}</p>
<div class="info">
Posted by {{$post->user->first_name}} on {{ $post->created_at }}
</div>
</article>
Eloquent \ Collection :: $ body "コメント表には" body "という名前の列があります。
がそれを手に入れた、 :コレクションの
そしてitarate:このコードはわずか3クエリを作成します。 body $ comment) '、しかしそれは私にエラーメッセージを与えました。 あなたのコードを使用し、foreachループ内で本体をフェッチするときに動作します '$ comment ['body']' ありがとう! –
Alexeyの答えに注意を払うだけでなく、クエリを保存するためにユーザーを熱心に読み込むこともできます。 – Devon