vendocrat / laravel-tags

该包已 弃用 并不再维护。作者建议使用 lecturize/laravel-tags 包代替。

Laravel 中对 Eloquent 模型进行标签化的简单方法。

v1.0.1 2021-02-10 18:31 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:50:53 UTC


README

Latest Stable Version Total Downloads License

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 在维也纳和罗马用心打造。