imjonos/laravel-emoji-reaction

Laravel 表情反应包

dev-master 2023-02-07 12:23 UTC

This package is auto-updated.

Last update: 2024-09-07 15:48:34 UTC


README

v0.1a - 测试版本

img.png

基于Unicode表情字符。默认列表可在配置文件中找到。

完整的Unicode表情列表:https://unicode.org/emoji/charts/full-emoji-list.html

在线演示:https://toprogram.ru/posts

代码示例和用法:https://github.com/imjonos/laravel-blog

安装

通过Composer

$ composer require imjonos/laravel-emoji-reaction
$ php artisan vendor:publish --provider="Nos\EmojiReaction\EmojiReactionServiceProvider"
$ php artisan migrate

使用方法

前端组件示例 https://github.com/imjonos/laravel-blog/blob/master/resources/js/components/EmojiReaction.vue

后端部分

    //Model 
    
    use Nos\EmojiReaction\Interfaces\Models\EmojiReactionInterface;
    use Nos\EmojiReaction\Traits\HasEmojiReactionTrait;
    
    final class Post extends Model implements EmojiReactionInterface
    {
        use HasEmojiReactionTrait;
    ...
    
   
    // Routes
    Route::post('/posts/{post}/emoji-reactions', [\App\Http\Controllers\PostController::class, 'addEmojiReaction'])->name(
        'site.posts.add-emoji-reaction'
    );
    Route::get('/posts/{post}/emoji-reactions', [\App\Http\Controllers\PostController::class, 'getEmojiReactionStatistic']
    )->name(
        'site.posts.get-emoji-reaction-statistic'
    );
    
    //Controller
    public function getEmojiReactionStatistic(Post $post): JsonResponse
    {
        return response()->json($this->reactionStatisticService->getByModel($post));
    }

    /**
     * @throws Exception
     */
    public function addEmojiReaction(AddEmojiReactionRequest $request, Post $post): JsonResponse
    {
        $emoji = $this->emojiService->find($request->get('emoji_id'));
        abort_if(!$emoji, 400);

        DB::transaction(function () use ($post, $request, $emoji) {
            $this->reactionService->addReaction($post, $emoji);
        });

        return response()->json();
    }

贡献

请参阅contributing.md以获取详细信息及待办事项清单。

许可证

许可证。有关更多信息,请参阅许可证文件