languafe / laravel-reactions
为 Eloquent 模型添加反应功能。
Requires
- php: ^8.0.2
- illuminate/database: ^9
- illuminate/http: ^9
- illuminate/support: ^9.0.0
This package is auto-updated.
Last update: 2024-09-16 14:58:38 UTC
README
此包允许您为 Eloquent 模型添加反应功能,并包含一个可用的 blade 组件,用于渲染带有可点击按钮(需要认证)和每个反应计数的反应面板。
反应作为多态一对一关系实现,可以通过添加 HasReactions
特性添加到任何现有模型中。
此包在 /reactions
添加一个 HTTP POST 端点,用于存储反应。
由 Erik Langhaug 在 2022 年 7 月 5 日 Joubel 的 "酷炫日" 创建,我的目标是了解如何创建 Laravel 扩展包。
使用方法
为了使用此包,您需要一个 Eloquent 模型,您希望为其启用 "反应" 功能(这些反应只是表示为字符串,可以是您喜欢的任何内容)。
安装
将包作为 composer 依赖项添加。
composer require languafe/laravel-reactions
运行包含的迁移来创建 reactions
数据库表。
php artisan migrate
可发布项目
来自 Laravel 包的 "可发布" 项目是指您可以将其复制到自己的 Laravel 应用项目目录中,以覆盖包提供的默认行为。
配置
要发布配置文件(目前用于设置允许哪些反应),请执行以下操作
php artisan vendor:publish --tag=reactions-config
编辑 config/reactions.php 文件以控制允许哪些反应。
<?php // config/reactions.php return [ 'allowed' => ['👍', '🙂', '👎', '🙁'] ];
覆盖视图
如果您想修改视图(目前只是一个匿名 blade 组件)
php artisan vendor:publish --tag=reactions-views
(执行此操作后,现在位于您的 resources/views/vendor/reactions 文件夹中的 blade 文件将具有优先权。)
将 HasReactions
特性添加到您的 Eloquent 模型
假设您有一个 Post
Eloquent 模型。
(如果您没有,可以使用 php artisan make:model Post -a
创建一个)
class Post extends Model
{
...
use HasReactions;
...
}
显示反应面板
将匿名 blade 组件添加到任何视图中。传递给 :model
属性的值预期具有 HasReactions
特性。
<x-reactions::panel :model="App\Models\Post::first()" />
如果您已登录,您应该可以点击每个反应。