lecturize/laravel-tags
| Install | |
|---|---|
composer require lecturize/laravel-tags |
|
| Latest Version: | v1.1.0 |
| PHP: | ^8.0 |
| License: | MIT |
| Last Updated: | Feb 21, 2023 |
| Links: | GitHub · Packagist |
Laravel Tags
Simple way to tag eloquent models in Laravel.
Installation
Require the package from your composer.json file
"require": {
"lecturize/laravel-tags": "^1.0"
}
and run $ composer update or both in one with $ composer require lecturize/laravel-tags.
Configuration & Migration
$ php artisan vendor:publish --provider="Cviebrock\EloquentSluggable\ServiceProvider"
$ php artisan vendor:publish --provider="Lecturize\Tags\TagsServiceProvider"
This will publish a config/sluggable.php, a config/lecturize.php and some migration files, that you'll have to run:
$ php artisan migrate
For migrations to be properly published ensure that you have added the directory database/migrations to the classmap in your projects composer.json.
Usage
First, add our HasTags trait to your model.
<?php
namespace App\Models;
use Lecturize\Tags\Traits\HasTags;
class Post extends Model
{
use HasTags;
// ...
}
?>
Get all tags for a model
$tags = $model->tags();
Check if model is tagged with a given tag
$tags = $model->hasTag('Check');
Add one or more tags
$tags = $model->tag('My First Tag');
$tags = $model->tag(['First', 'Second', 'Third']);
Remove given tags from model
$tags = $model->untag('Remove');
Replace all existing tags for a model with new ones
$tags = $model->retag('A New Tag');
$tags = $model->retag(['Fourth', 'Fifth', 'Sixth']);
Remove all existing tags from model
$tags = $model->detag();
Get a list of all tags
$tags = $model->listTags();
This is a convenience method for $model->tags->pluck('tag')
Scopes
There are two scopes included to fluently query models (e.g. Posts) with given tags.
$posts = Post::withTag('My First Tag')->get();
$posts = Post::withTags(['First', 'Second', 'Third'])->get();
License
Licensed under MIT license.
Author
Handcrafted with love by Alexander Manfred Poellmann in Vienna & Rome.
Related Packages
Use PHP traits to extend Laravel Eloquent Models to allow Tags. Models can be ma...
Use PHP traits to extend Laravel Eloquent Models to allow Tags. Models can be ma...