languafe/laravel-reactions

为 Eloquent 模型添加反应功能。

0.0.1 2022-07-05 17:54 UTC

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()" />

如果您已登录,您应该可以点击每个反应。