yarm / comments
YARM参考管理应用的插件。基于Yarm comments
Requires
- erusev/parsedown: ^1.7
- spatie/laravel-honeypot: ^4.3
This package is auto-updated.
Last update: 2024-09-26 12:17:10 UTC
README
Comments是一个Laravel包。使用它,你可以轻松地为你的应用程序实现原生评论。
概览
此包可用于对应用程序中的任何模型进行评论。
所有评论都存储在一个单独的表中,内容具有多态关系,发布评论的用户也具有多态关系。
功能
- 查看评论
- 创建评论
- 删除评论
- 编辑评论
- 回复评论
- 授权规则
- 支持本地化
- 分发事件
- 路由、控制器、评论、迁移和视图定制
- 支持非整数ID
- 支持多个用户模型
- 解决了N+1查询问题
- 评论批准(可选)
- 访客评论(可选)
- 分页(可选)
- 软删除(可选)
- 支持自定义ID列 [新]
截图
这里有一些截图。
没有评论 & 访客
没有评论 & 已登录
一条评论
一条评论编辑表单
来自不同用户的两条评论
教程和文章
我计划扩展这一章节,添加更多教程和文章。如果你写了一些关于这个包的内容,请让我知道,这样我可以更新这一章节。
屏幕录制
- 在Laravel应用程序中添加评论,由Andre Madarang。
安装
从命令行
composer require Yarm/comments
运行迁移
我们需要创建评论表。
php artisan migrate
将Commenter特性添加到User模型中
将Commenter
特性添加到User模型中,以便可以检索用户的评论
use Yarm\Comments\Commenter; class User extends Authenticatable { use Notifiable, Commenter; }
将Commentable特性添加到模型中
将Commentable
特性添加到你想要启用评论的模型中
use Yarm\Comments\Commentable; class Product extends Model { use Commentable; }
发布配置 & 配置(可选)
发布配置文件(可选)
php artisan vendor:publish --provider="Yarm\Comments\ServiceProvider" --tag=config
发布视图(定制)
默认UI是为Bootstrap 4制作的,但你可以随意更改。
php artisan vendor:publish --provider="Yarm\Comments\ServiceProvider" --tag=views
发布迁移(定制)
你可以发布迁移以允许你更好地控制你的表
php artisan vendor:publish --provider="Yarm\Comments\ServiceProvider" --tag=migrations
用法
在你想显示评论的视图中,放置此代码并修改它
@comments(['model' => $book])
在上面的示例中,我们将commentable_type
设置为书的类。我们还传递了commentable_id
的id
,以便我们知道评论与哪本书相关。幕后,如果有的话,包会检测当前登录的用户。
如果你打开包含上述代码的视图页面,你应该看到一个可用的评论表单。
仅查看已批准的评论
要查看仅批准的评论,请使用此代码
@comments([
'model' => $book,
'approved' => true
])
分页评论
分页仅对顶级评论进行分页,这意味着如果你指定每页的评论数为1,并且一条评论有100条回复,它将显示那条评论及其所有回复。
没有其他方法可以做到这一点,因为如果我按所有评论(父级和子级)进行分页,你最终会得到空白页面,因为评论组件首先循环父级评论,然后递归地使用回复。
要使用分页,请使用此代码
@comments([
'model' => $user,
'perPage' => 2
])
将2
替换为您想要的任何数字。
事件
此包会触发事件,让您知道何时发生事情。
Yarm\Comments\Events\CommentCreated
Yarm\Comments\Events\CommentUpdated
Yarm\Comments\Events\CommentDeleted
REST API
要更改控制器或路由,请查看配置文件。
Route::post('comments', '\Yarm\Comments\CommentController@store');
Route::delete('comments/{comment}', '\Yarm\Comments\CommentController@destroy');
Route::put('comments/{comment}', '\Yarm\Comments\CommentController@update');
Route::post('comments/{comment}', '\Yarm\Comments\CommentController@reply');
POST /comments
请求数据
'commentable_type' => 'required|string',
'commentable_id' => 'required|string|min:1',
'message' => 'required|string'
PUT /comments/{comment}
- {comment} - 评论ID。
请求数据
'message' => 'required|string'
POST /comments/{comment}
- {comment} - 评论ID。
请求数据
'message' => 'required|string'
从旧版本升级(故障排除)
在创建问题之前,请阅读此内容。
赞助商与支持者
我要向以下赞助商和支持者表示感谢,他们为我的开源之旅提供了资金。如果您有兴趣成为赞助商或支持者,请访问支持者页面。
贡献
感谢您考虑为评论做出贡献!贡献指南可在此处找到。
行为准则
为了确保开源社区对所有成员都友好,请阅读并遵守行为准则。
许可证
评论是开源软件,许可协议为MIT许可证。