lecturize/laravel-tags
Simple way to tag Eloquent models in Laravel 5.
2,900
7
| Install | |
|---|---|
composer require lecturize/laravel-tags |
|
| Latest Version: | v1.1.0 |
| PHP: | ^8.0 |
| License: | MIT |
| Last Updated: | Feb 21, 2023 |
| Links: | GitHub · Packagist |
Maintainer: AlexanderPoellmann
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.