lecturize/laravel-tags

在 Laravel 中简单地对 Eloquent 模型进行标记。

v1.1.0 2023-02-21 16:43 UTC

This package is auto-updated.

Last update: 2024-09-21 23:27:55 UTC


README

Latest Stable Version Total Downloads License

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 在维也纳和罗马用爱心手工制作。