digu087 / tcd-tagging
使用PHP特性来扩展Laravel Eloquent模型以允许标签。模型可以被标记为可标记的。您还可以将标签与多个组关联
V1.0
2020-05-15 07:16 UTC
Requires
- php: >=7.0
- illuminate/database: >= 5.0|^6.0|^7.0
- illuminate/support: >= 5.0|^6.0|^7.0
Requires (Dev)
- mockery/mockery: ~1.2
- orchestra/testbench: 5.*|4.*
- phpunit/phpunit: 8.*
- vlucas/phpdotenv: ~4.1
This package is auto-updated.
Last update: 2024-09-15 16:33:42 UTC
README
此包是rtconner/laravel-tagging的分支。这是原始包的定制版本。它添加了将标签与多个组关联的能力
Composer安装(适用于Laravel 5/6/7和Lumen 5/6/7)
composer require digu087/tcd-tagging "~4.0"
安装后运行迁移
当您运行composer update时,包应该会自动发现。然后发布tagging.php并使用以下命令运行数据库迁移。
php artisan vendor:publish --provider="Conner\Tagging\Providers\TaggingServiceProvider"
php artisan migrate
设置您的模型
class Article extends \Illuminate\Database\Eloquent\Model { use \Conner\Tagging\Taggable; }
快速示例用法
$article = Article::with('tagged')->first(); // eager load foreach($article->tags as $tag) { echo $tag->name . ' with url slug of ' . $tag->slug; } $article->tag('Gardening'); // attach the tag $article->untag('Cooking'); // remove Cooking tag $article->untag(); // remove all tags $article->retag(array('Fruit', 'Fish')); // delete current tags and save new tags $article->tagNames(); // get array of related tag names Article::withAnyTag(['Gardening','Cooking'])->get(); // fetch articles with any tag listed Article::withAllTags(['Gardening', 'Cooking'])->get(); // only fetch articles with all the tags Article::withoutTags(['Gardening', 'Cooking'])->get(); // only fetch articles without all tags listed Conner\Tagging\Model\Tag::where('count', '>', 2)->get(); // return all tags used more than twice Article::existingTags(); // return collection of all existing tags on any articles
配置
有关配置选项,请参阅config/tagging.php。
Lumen安装
Laravel 4升级到5
此库将完整的模型类名存储到数据库中。当您升级Laravel并为您模型添加命名空间时,您需要更新数据库中存储的记录。或者,您可以在模型类中覆盖Model::$morphClass以匹配数据库中存储的字符串。
致谢
- Robert Conner - http://smartersoftware.net