unisharp / laravel-taggable
使用独立表或一个表来处理
dev-master
2017-04-13 07:50 UTC
Requires
- php: >=5.5.0
- illuminate/support: >=5.0.0
This package is auto-updated.
Last update: 2024-09-15 14:59:07 UTC
README
介绍
此API可以处理独立表中的标签或仅使用一个表
安装Taggable
composer.json
"require" : { "unisharp/laravel-taggable" : "dev-master" }, "repositories": { "type": "git", "url": "https://github.com/UniSharp/laravel-taggable.git" }
保存它然后
composer update
配置Taggable
-
config/app.php
- providers
Unisharp\Taggable\TaggableServiceProvider::class,
介绍
-
IndependentTaggable:它使用独立表来保存您的标签
例如,如果Product模型已存在,您可以使用以下命令生成ProductTag模型
-
IndependentCategorizable:它可以对模型进行分类
标签和分类之间有什么区别?
标签是多对多关系,一个可标记实体可以标记多个标签,同时有多个实体可以属于一个标签。然而,一个实体只能属于一个分类,这是一个一对一的关系,同时有多个实体可以属于一个分类。
生成独立的标签表
我假设Product模型已经存在,并且您想使此模型可标记。如果您没有任何模型,您可以使用以下内置命令来生成它
php artisan make:model Product --migration
并使用以下命令为您的Product生成标签表和模型
php artisan taggable:independent_tag_table Product
您将在app/
文件夹下看到ProductTag模型
现在,为您的产品模型添加特质使其可标记。
use Unisharp\Taggable\Traits\IndependentTaggable; class Product extends Model { use IndependentTaggable }
使用独立标签
- 标记您的模型
$product = Product::find(1); $product->tag('new_tag'); // only string $product->tag('tag1', 'tag2', 'tag3'); // multi string also work $product->tag(['tag1', 'tag2']); // array is acceptable
- 取消标记
$product->untag('new_tag'); $product->untag('tag1', 'tag2', 'tag3'); $product->untag(['tag1', 'tag2']);
- 获取您的标签
$product->tags // it will return ProductTag back
- 列出属于指定标签的实体
$tag = ProductTag::find(1); $tag->entities // it will return Products back
生成独立的分类
就像独立标签一样,您可以通过命令生成独立的分类迁移。
php artisan taggable:independent_category_table Product
它将为Product生成ProductCategory
然后您可以像之前一样为Product添加分类特质。
use Unisharp\Taggable\Traits\IndependentIndependentCategorizable;
class Product extends Model
{
use IndependentCategorizable;
}
使用独立分类
- 对您的模型进行分类
$product = Product::find(1); $product->categorize('free'); // use string $product->categorize(1); // use product_category id
- 取消分类
$product->decategorize();
- 列出您的模型分类
$product->catetory // list its category, it return ProductCategory