📜  评论 = 评论::find($this->route('comment'));在 laravel - PHP (1)

📅  最后修改于: 2023-12-03 15:28:09.325000             🧑  作者: Mango

Laravel中的评论模型

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,并与PostUser模型建立了关联,分别表示评论所属的文章和评论的发表者。

然后,我们可以通过以下方式获取单条评论:

$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中的评论模型的简单介绍,希望对你有帮助!