📅  最后修改于: 2023-12-03 15:28:09.325000             🧑  作者: Mango
Laravel是一个流行的PHP框架,提供了一个强大的ORM(Object-Relational Mapping)模块Eloquent,实现了模型驱动的数据库操作,通过模型类的定义和操作,不需要手写SQL就可以操作数据库。评论模型是一个常见的需求,在Laravel中也有相应的实现方式。
首先需要定义一个评论模型,可以使用以下命令生成:
php artisan make:model Comment
在评论模型中,我们需要定义对应的数据表,以及定义与其它模型的关联关系:
class Comment extends Model
{
protected $table = 'comments';
public function post()
{
return $this->belongsTo('App\Post');
}
public function user()
{
return $this->belongsTo('App\User');
}
}
在上述代码中,我们定义了一个数据表comments
,并与Post
和User
模型建立了关联,分别表示评论所属的文章和评论的发表者。
然后,我们可以通过以下方式获取单条评论:
$comment = Comment::find($id);
这里$id
是评论的ID。
在控制器中,我们可以通过以下方式来获取评论模型:
// 获取指定ID的评论
$comment = Comment::find($this->route('comment'));
// 获取指定文章的所有评论
$post = App\Post::find($id);
$comments = $post->comments;
// 创建新评论
$comment = new Comment(['message' => '这是我的评论']);
$post = App\Post::find($id);
$user = Auth::user();
$comment->post()->associate($post);
$comment->user()->associate($user);
$comment->save();
在视图中,我们可以通过以下方式来显示评论信息:
@foreach ($comments as $comment)
<div class="comment">
<p>{{ $comment->user->name }}:</p>
<p>{{ $comment->message }}</p>
</div>
@endforeach
这里,我们使用了$comments
变量来存储一篇文章的所有评论,并通过循环将每个评论的用户名和评论内容显示出来。
以上就是Laravel中的评论模型的简单介绍,希望对你有帮助!