Package

Rtconner Laravel Tagging

Use PHP traits to extend Laravel Eloquent Models to allow Tags. Models can be marked as Taggable.

Package

rtconner/laravel-tagging

View on GitHub →

Laravel Taggable Trait

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
Install and then Run the migrations

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
Setup your models
class Article extends \Illuminate\Database\Eloquent\Model
{
use \Conner\Tagging\Taggable;
}
Quick Sample Usage
$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

Documentation: Tag Groups

Documentation: Tagging Events

Documentation: Tag Suggesting

Configure

See config/tagging.php for configuration options.

Lumen Installation

Documentation: Lumen

Credits
Further Reading

Rtconner Laravel Tagging Related Articles

How to add Tagging to your Laravel App image

How to add Tagging to your Laravel App

Read article

Pushsilver

Pushsilver is simple invoicing for freelancers and small studios — send polished invoices, automate reminders, and get paid on time without the bloat.

Pushsilver

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech

No Compromises

Joel and Aaron, the two seasoned devs from the No Compromises podcast, are now available to hire for your Laravel project. ⬧ Flat rate of $9500/mo. ⬧ No lengthy sales process. ⬧ No contracts. ⬧ 100% money back guarantee.

No Compromises

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing