私はLaravelの関係モデルについての質問がありlaravel関係モデル
comment table id post_id
post table id author_id
author table id name
私は、どのようにポストテーブルを通じてコメントモデルの作成者の名前を取得するために、関係モデルを使いたい
これを実現する。どうもありがとう。
私はLaravelの関係モデルについての質問がありlaravel関係モデル
comment table id post_id
post table id author_id
author table id name
私は、どのようにポストテーブルを通じてコメントモデルの作成者の名前を取得するために、関係モデルを使いたい
これを実現する。どうもありがとう。
投稿とユーザーの間にhasMany関係を作成する必要があります。
Postモデル::
// A post can have 1 author
public function author() {
return $this->belongsTo('App\User');
}
Userモデル:
// A user can have multiple posts
public function posts() {
return $this->hasMany('App\Post');
}
Laravel中関係が実装するために、かなりまっすぐ進むであり、実際にあるあなたがモデルで、この関係の機能を記述する必要があり、これを行うために、表現力豊かなAPIのために理解しやすい。だからあなたの場合には、ロジックはこのようになります:
コメントがポストに属し、ポストだからあなたは
Comment
を持って考慮著者
に属し、 Post
およびAuthor
モデルでは、それぞれに上記のロジックを反映する関係メソッドが定義されている必要があります。
Comment
モデルは次のようになります。
class Comment extends Model
{
public function post()
{
return $this->belongsTo(Post::class);
}
}
そしてPost
モデルは次のようになります。
class Post extends Model
{
public function author()
{
return $this->belongsTo(Author::class);
}
}
その後、あなたは簡単にそれらの関係を経由して投稿者名にアクセスすることができます:
Comment::find(1)->post->author->name;
上記のコードからわかるように、メソッド名が実際に示唆的なので、関係のコードを書くのは非常に簡単です。 Laravel DocumentationのEloquent Relationshipsの詳細を読むことができます。
が、私はあなたがあなたが非常に歓迎している –
step.thanks従って解決し、どうもありがとうございました、ありがとうございました。 – Bogdan
class Post extends Model
{
public function author()
{
return $this->belongsTo(Author\class)->select('name');
}
}
Comment::with('author')->find(1);
in blade
{{$comment->auther['name']}}
回答には適切な説明が必要です。 –
また、スペルミスや少なくとも1つの誤植もあります。 –
は –