Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

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

How to add Tagging to your Laravel App image

How to add Tagging to your Laravel App

Read article
LoadForge logo

LoadForge

Scalable load testing for web apps & APIs. Simulate real-world traffic and identify breaking points and performance limits with powerful, scalable load tests designed for Laravel.

LoadForge
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
Securing Laravel logo

Securing Laravel

The essential security resource for Laravel devs, covering everything you need to keep your apps secure. Sign up to receive weekly security tips and monthly in depth articles, diving deep into security concepts you need to know!

Securing Laravel
SerpApi logo

SerpApi

Access real-time search engine results through a simple API—no more scraping headaches! Use it for AI applications, SEO tools, product research, travel information, and more

SerpApi
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
Typesense Search logo

Typesense Search

Typesense is an open source, blazing-fast search engine, optimized for helping you build delightful search experiences for your sites and apps. Natively integrated with Laravel Scout.

Typesense Search