takshak / adash-reviews
laravel的评论系统
Requires
README
是takshaktiwari/adash的扩展,用于创建评论系统。它可以附加到您应用程序的任何模型上,并且是完全可定制的。
实现
使用以下命令通过composer安装包,并运行迁移php artisan migrate
composer require takshak/adash-review
发布配置文件、视图和组件以进行进一步自定义
php artisan vendor:publish --provider=Takshak\Areviews\AreviewsServiceProvider
将组件添加到管理侧边栏中的ul
元素内,以获取管理侧边栏中的链接
<x-areviews-areviews:admin-sidebar-links />
运行迁移
php artisan migrate
使用Takshak\Areviews\Traits\Models\ReviewModelTrait
将这些模型添加到您想要实现评论系统的模型中。这将帮助您获取模型的评分和评论。如果模型是$product,则可以通过$product->rating
访问模型的评分,通过$product->reviews
访问评论。
现在所有设置已完成,您可以根据需求使用其他组件。
组件
管理侧边栏菜单
<x-areviews-areviews:admin-sidebar-links />: 使用此组件在管理侧边栏中显示菜单项
列出评论
<x-areviews-areviews:reviews ..... />: 此组件非常有用,可以显示评论列表。您可以列出自己的评论或默认的最新评论,带或不带分页。默认显示样式将使用bootstrap的行和列的瀑布流。发布资产后,您可以进一步自定义此组件。此组件有一些参数,可能有助于您实现所需的格式
-
reviews:传递您已从数据库中挖掘出的评论集合。只有这些评论将在列表中显示。
-
model:传递您想要获取评论的模型实例。注意:请检查您是否已将
ReviewModelTrait
特征应用于模型。只有当第一个reviews
参数未传递或为空时,您才会看到模型的评论。 -
limit:此参数将限制我们从
reviews
或model
参数中获得的评论。在pagination
的情况下,这还将作为每页的计数。默认限制值为10。 -
column:使用列类来控制列表中的列数。默认值为
col-lg-4 col-md-6
。在大屏幕上显示3列,在中等屏幕上显示2列,在小屏幕或移动设备上显示单列。您可以传递自己的列类来控制列数。您也可以在配置文件中全局定义它。 -
paginate:将值设置为
true
或false
以在列表中获得分页功能。这将仅在您从model
参数而不是从reviews
参数获取评论时起作用。
示例
从所有模型中获取最新的6条评论。
<x-areviews-areviews:reviews limit="6" />
带有分页的产品所有评论。
<x-areviews-areviews:reviews :model="$product" limit="20" :paginate="true" />
获取评论表单
<x-areviews-areviews:review-form ..... />: 此组件可以用于存储或编辑评论。有一些参数可以更改功能。可以通过更改配置中的字段数组来删除某些字段。
-
model:传递您想要关联评论的模型。
-
审核:现有的审核会被传递来填充字段。如果您正在编辑审核,则可以使用此功能。
-
URL:在此处输入您想提交表单的URL。默认情况下,表单将提交到默认URL。只有当您想更改提交URL时,才需要传递此值。
-
方法:默认方法是
POST
,如果您想更改表单方法,在编辑审核时可以传递PUT
。 -
重定向:表单将在提交后返回到表单。如果您想在表单提交后转到其他页面,可以在此处传递目标URL。
示例
// for storing the review.
<x-areviews-areviews:review-form :model="$product" />
// for editing the review with other arguments
<x-areviews-areviews:review-form
method="PUT"
:model="$review->reviewable"
:review="$review"
:url="route('admin.reviews.update', [$review])"
:redirect="route('admin.reviews.index')" />
显示单个审核
<x-areviews-areviews:review-card ..... />:这将显示一个审核项目,将传递一个名为review
的参数,其中包含要显示的审核模型。例如:<x-areviews-areviews:review-card :review="$review" />