陈孝右*_*陈孝右 2 model relationships laravel
我有一个关于 Laravel 的关系模型的问题
comment table id post_id
post table id author_id
author table id name
Run Code Online (Sandbox Code Playgroud)
我想使用关系模型通过帖子表在评论模型中获取作者姓名,如何实现这一点。非常感谢。
Laravel 中的关系实现起来非常简单,而且由于 API 的表现力很强,所以很容易理解。所以在你的情况下,逻辑是这样的:
一个评论属于邮政和邮政属于作者
因此,考虑到您有一个Comment,Post和Author模型,每个模型都应该定义一个反映上述逻辑的关系方法。
该Comment模型将如下所示:
class Comment extends Model
{
public function post()
{
return $this->belongsTo(Post::class);
}
}
Run Code Online (Sandbox Code Playgroud)
而Post模型是这样的:
class Post extends Model
{
public function author()
{
return $this->belongsTo(Author::class);
}
}
Run Code Online (Sandbox Code Playgroud)
然后您可以通过这些关系轻松访问帖子作者姓名:
Comment::find(1)->post->author->name;
Run Code Online (Sandbox Code Playgroud)
从上面的代码可以看出,为关系编写代码非常容易,因为方法名称确实具有启发性。您可以在Laravel 文档 中阅读有关Eloquent关系的更多信息。