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
Laravel Cloud logo

Laravel Cloud

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

Laravel Cloud
Celebian logo

Celebian

Celebian is a social media marketing agency specializing in helping their clients go viral on TikTok. Whether you're looking to reach a bigger audience or gain more Tiktok followers, likes, and views, they've got you covered.

Celebian
Honeybadger logo

Honeybadger

Simple developer-focused application monitoring for Laravel. Error tracking, log management, uptime monitoring, status pages, and more!

Honeybadger
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
The Certification of Competence for Laravel logo

The Certification of Competence for Laravel

A community-driven, proctored assessment across 4 levels designed to validate real-world Laravel knowledge, from Junior to mastery-level Artisan. Official Vue.js, Official Nuxt, Angular, React, JS certifications also available.

The Certification of Competence for Laravel
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