Use PHP traits to extend Laravel Eloquent Models to allow Tags. Models can be marked as Taggable.
kossmoss/laravel-tagging is a Laravel package for use php traits to extend laravel eloquent models to allow tags. models can be marked as taggable..
It currently has 0 GitHub stars and 7 downloads on Packagist (latest version 4.1.1.001).
Install it with composer require kossmoss/laravel-tagging.
Discover more Laravel packages by kossmoss
or browse all Laravel packages to compare alternatives.
Last updated
This package is an attempt to enhance tag and tag group management for the systems' moderators/admins. This version gives more possibilities to use inside properly secured admin area. Please consider to use the original package if your tags supposed to be managed by non-privileged users.
This package is not meant to handle javascript or html in any way. This package handles database storage and read/writes only.
There are no real limits on what characters can be used in a tag. It uses a slug transform to determine if two tags are identical ("sugar-free" and "Sugar Free" would be treated as the same tag). Tag display names are run through Str::title()
composer require rtconner/laravel-tagging
The package should auto-discover when you composer update. Then publish the tagging.php and run the database migrations with these commands.
php artisan vendor:publish --provider="Conner\Tagging\Providers\TaggingServiceProvider"
php artisan migrate
class Article extends \Illuminate\Database\Eloquent\Model
{
use \Conner\Tagging\Taggable;
}
$article = Article::with('tagged')->first(); // eager load
foreach($article->tags as $tag) {
echo $tag->name . ' with url slug of ' . $tag->slug;
}
$article->tag('Gardening'); // attach the tag
$article->untag('Cooking'); // remove Cooking tag
$article->untag(); // remove all tags
$article->retag(array('Fruit', 'Fish')); // delete current tags and save new tags
$article->tagNames(); // get array of related tag names
Article::withAnyTag(['Gardening','Cooking'])->get(); // fetch articles with any tag listed
Article::withAllTags(['Gardening', 'Cooking'])->get(); // only fetch articles with all the tags
Article::withoutTags(['Gardening', 'Cooking'])->get(); // only fetch articles without all tags listed
Conner\Tagging\Model\Tag::where('count', '>', 2)->get(); // return all tags used more than twice
Article::existingTags(); // return collection of all existing tags on any articles
Documentation: More Usage Examples
See config/tagging.php for configuration options.