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

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

Shift

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

Shift
Harpoon: Next generation time tracking and invoicing logo

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

PhpStorm

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

PhpStorm
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
Get expert guidance in a few days with a Laravel code review logo

Get expert guidance in a few days with a Laravel code review

Expert code review! Get clear, practical feedback from two Laravel devs with 10+ years of experience helping teams build better apps.

Get expert guidance in a few days with a Laravel code review
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec