lecturize / laravel-tags
在 Laravel 中简单地对 Eloquent 模型进行标记。
v1.1.0
2023-02-21 16:43 UTC
Requires
- php: ^8.0
- cviebrock/eloquent-sluggable: ^9.0|^10.0
- illuminate/database: ^9.0|^10.0
- illuminate/support: ^9.0|^10.0
- webpatser/laravel-uuid: ^3.0|^4.0
Requires (Dev)
- mockery/mockery: ^1.4
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^8.0|^9.0|^10.0
README
Laravel 标签
在 Laravel 中简单地对 Eloquent 模型进行标记。
安装
从你的 composer.json
文件中要求此包
"require": { "lecturize/laravel-tags": "^1.0" }
并运行 $ composer update
或两者同时使用 $ composer require lecturize/laravel-tags
。
配置 & 迁移
$ php artisan vendor:publish --provider="Cviebrock\EloquentSluggable\ServiceProvider" $ php artisan vendor:publish --provider="Lecturize\Tags\TagsServiceProvider"
这将发布一个 config/sluggable.php
、一个 config/lecturize.php
和一些迁移文件,您需要运行它们
$ php artisan migrate
为了确保迁移被正确发布,请确保您已将目录 database/migrations
添加到项目 composer.json
中的类映射中。
用法
首先,将我们的 HasTags
特性添加到您的模型中。
<?php namespace App\Models; use Lecturize\Tags\Traits\HasTags; class Post extends Model { use HasTags; // ... } ?>
获取模型的全部标签
$tags = $model->tags();
检查模型是否已标记给定的标签
$tags = $model->hasTag('Check');
添加一个或多个标签
$tags = $model->tag('My First Tag'); $tags = $model->tag(['First', 'Second', 'Third']);
从模型中删除指定的标签
$tags = $model->untag('Remove');
用新的标签替换模型中的所有现有标签
$tags = $model->retag('A New Tag'); $tags = $model->retag(['Fourth', 'Fifth', 'Sixth']);
从模型中删除所有现有标签
$tags = $model->detag();
获取所有标签的列表
$tags = $model->listTags();
这是一个方便的方法,用于 $model->tags->pluck('tag')
作用域
包含两个作用域,可以流畅地查询具有给定标签的模型(例如,帖子)。
$posts = Post::withTag('My First Tag')->get(); $posts = Post::withTags(['First', 'Second', 'Third'])->get();
许可
根据 MIT 许可证 许可。
作者
由 Alexander Manfred Poellmann 在维也纳和罗马用爱心手工制作。