vendocrat / laravel-tags
v1.0.1
2021-02-10 18:31 UTC
Requires
- php: ^7.2.5|^8.0
- cviebrock/eloquent-sluggable: ^6.0|^7.0|^8.0
- illuminate/database: ^6.0|^7.0|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- doctrine/dbal: ^2.12
- laravel/framework: ^6.0|^7.0|^8.0
- mockery/mockery: ~1.0
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.0
This package is not auto-updated.
Last update: 2022-02-01 12:50:53 UTC
README
Laravel Tags
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
为了确保迁移文件正确发布,请确保您已在项目的 composer.json
中将目录 database/migrations
添加到类映射。
使用
首先,将我们的 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)。
$posts = Post::withTag('My First Tag')->get(); $posts = Post::withTags(['First', 'Second', 'Third'])->get();
许可证
根据 MIT 许可证 许可。
作者
由 Alexander Manfred Poellmann 在维也纳和罗马用心打造。