klisl/laravel-comments

用于Laravel-5的评论组件

1.8 2018-04-03 13:00 UTC

This package is not auto-updated.

Last update: 2024-09-19 04:05:27 UTC


README

Laravel 5 License

用于在Laravel-5中创建评论块。

本包的特点和优势

  • 评论以树状结构显示。子评论相对于父评论向右偏移(用于回复其他评论)。
  • 使用AJAX处理添加新评论的表单(无需页面刷新)。
  • 点击“回复”按钮时,表单将立即插入到相应(父)评论之后。
  • 提交表单时,立即生成并显示新添加的评论(可以在设置中禁用)。
  • 未注册用户可以添加评论。在此情况下,注册用户可以不填写作者姓名和电子邮件地址。
  • 在发送评论的弹出窗口中记录发送状态和可能的错误。

安装

使用Composer安装包。

composer require klisl/laravel-comments

如果Laravel版本低于5.5,请将以下内容添加到项目中的config/app.php文件末尾的providers数组中

Klisl\Comments\CommentsServiceProvider::class,

对于>=5.5的版本,请跳过此步骤。

完成后,在控制台执行发布所需资源的命令

php artisan vendor:publish --provider="Klisl\Comments\CommentsServiceProvider"

可以在config/comments.php文件中修改包的设置。

执行迁移以创建所需的表(控制台)

php artisan migrate

如有需要,可以在控制台中填充测试数据到评论表

composer dump-autoload
php artisan db:seed --class=TestCommentsSeeder

使用方法

在输出模板中,将评论树和表单一起输出到与评论关联的单个帖子(文章/分类等)模板中。为此,需要在模板中插入以下部分

@section('comments')
	@include('comments.comments_block', ['essence' => $post])
@endsection

其中 $post 包含单独帖子模型的对象。

与其他部分一样,'comments'部分必须在继承该模板的布局中连接

@yield('content')

在布局中还需要连接示例中指定的样式和脚本

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		
		<link rel="stylesheet" type="text/css" media="all" href="{{asset('css')}}/app.css" />
		<link rel="stylesheet" type="text/css" media="all" href="{{asset('comments/css')}}/comments.css" />
		
		
		<script type="text/javascript" src="{{asset('js')}}/app.js" /></script>
		<script type="text/javascript" src="{{asset('comments/js')}}/comment-reply.js" /></script>
		<script type="text/javascript" src="{{asset('comments/js')}}/comment-scripts.js" /></script>

	</head>
	<body>
	
	…
	
	@yield('comments')	
	
	…

	</body>
</html>

代码中包含了详细的注释。

处理评论数据添加的控制器在文件app\Http\Controllers\CommentController.php中可用进行编辑。

使用AJAX向服务器发送请求并负责输出通知弹出窗口的文件是public/comments/js/comment-scripts.js

评论块的样式配置在文件public/comments/css/comments.css中。

enter image description here

我的博客: klisl.com