Laravel Tagging

rtconner/laravel-tagging image

Laravel Tagging stats

Downloads
1.8M
Stars
883
Open Issues
3
Forks
168

View on GitHub →

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

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

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Rtconner Laravel Tagging Related Articles

Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
No Compromises logo

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
Statamic logo

Statamic

The drop-in ready Laravel CMS you’re been waiting for. Go full-stack or headless, flat file or database – it’s up to you.

Statamic
Laravel Cloud logo

Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Laravel Cloud
Acquaint Softtech logo

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
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift