jobmetric/laravel-comment

这是一个用于Laravel项目的评论管理包。

1.1.0 2024-06-18 19:18 UTC

This package is auto-updated.

Last update: 2024-09-18 19:54:50 UTC


README

Contributors Forks Stargazers MIT License LinkedIn

laravel评论

这是一个用于Laravel中任何对象的评论管理包,您可以在项目中使用。

通过composer安装

运行以下命令以拉取最新版本

composer require jobmetric/laravel-comment

文档

该包每天都在持续开发下演变,集成了各种功能。它是Laravel爱好者的必备资产,并提供了一种无缝的方式来使项目与基本的评论模型对齐。

在此包中,您可以与任何需要评论的模型无缝使用。

现在让我们来看主要功能。

在执行任何操作之前,您必须通过composer安装包后进行迁移。

php artisan migrate

认识一下精心设计的HasComment类,该类旨在集成到您的模型中。这个类自动执行基本任务,确保过程流畅。

在第一步中,您需要将此类连接到您的主体模型。

use JobMetric\Comment\HasComment;

class Post extends Model
{
    use HasComment;
}

当您添加此类时,您必须实现CommentContract到您的模型。

use JobMetric\Comment\Contracts\CommentContract;

class Post extends Model implements CommentContract
{
    use HasComment;
}

现在您必须使用needsCommentApproval函数,并将其添加到您的模型中。

use JobMetric\Comment\Contracts\CommentContract;

class Post extends Model implements CommentContract
{
    use HasComment;

    public function needsCommentApproval(): bool
    {
        return false;
    }
}

如何使用?

现在您可以为您模型使用HasComment类。

存储评论

您可以使用以下代码存储新的评论

$post = Post::create([
    'title' => 'Post title',
    'body' => 'Post body',
]);

$post->comment('This is a comment', $parent_comment_id, $user_id);

如果您想存储没有父评论的评论,可以将null传递给第二个参数。

如果您想存储没有用户的评论,可以将null传递给第三个参数。

更新评论

您可以使用以下代码更新现有的评论

$post->updateComment($comment->id, 'This is a new comment');

忘记评论

您可以使用以下代码忘记现有的评论

$post->forgetComment($comment->id);

忘记所有评论

您可以使用以下代码忘记所有评论

$post->forgetComments();

获取评论

您可以使用以下代码获取所有评论

$comments = $post->comments;

获取已批准的评论

您可以使用以下代码获取所有已批准的评论

$comments = $post->approvedComments;

获取未批准的评论

您可以使用以下代码获取所有未批准的评论

$comments = $post->unapprovedComments;

获取父评论

您可以使用以下代码获取所有父评论

$comments = $post->parentComments;

CanComment特性

您还可以将CanComment特性类连接到您的User模型。

use JobMetric\Comment\CanComment;

class User extends Authenticatable
{
    use CanComment;
}

事件

此包包含多个事件,您可以为以下内容编写监听器

贡献

感谢您考虑为Laravel Comment做出贡献!贡献指南可在CONTRIBUTING.md中找到。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件