takshak/adash-reviews

laravel的评论系统

1.2.2 2024-07-26 18:23 UTC

This package is auto-updated.

Last update: 2024-09-26 18:42:35 UTC


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:此参数将限制我们从reviewsmodel参数中获得的评论。在pagination的情况下,这还将作为每页的计数。默认限制值为10

  • column:使用列类来控制列表中的列数。默认值为col-lg-4 col-md-6。在大屏幕上显示3列,在中等屏幕上显示2列,在小屏幕或移动设备上显示单列。您可以传递自己的列类来控制列数。您也可以在配置文件中全局定义它。

  • paginate:将值设置为truefalse以在列表中获得分页功能。这将仅在您从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" />