Laravel 关系模型如何通过帖子模型在评论模型中获取作者姓名

陈孝右*_*陈孝右 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)

我想使用关系模型通过帖子表在评论模型中获取作者姓名,如何实现这一点。非常感谢。

Bog*_*dan 5

Laravel 中的关系实现起来非常简单,而且由于 API 的表现力很强,所以很容易理解。所以在你的情况下,逻辑是这样的:

一个评论属于邮政邮政属于作者

因此,考虑到您有一个Comment,PostAuthor模型,每个模型都应该定义一个反映上述逻辑的关系方法。


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关系的更多信息