digu087 / tcd-tagging
Use PHP traits to extend Laravel Eloquent Models to allow Tags. Models can be marked as Taggable. You can also assocaite a tag with multiple groups
Requires
- php: >=7.0
- illuminate/database: >= 5.0|^6.0|^7.0
- illuminate/support: >= 5.0|^6.0|^7.0
Requires (Dev)
- mockery/mockery: ~1.2
- orchestra/testbench: 5.*|4.*
- phpunit/phpunit: 8.*
- vlucas/phpdotenv: ~4.1
This package is auto-updated.
Last update: 2025-06-15 18:17:24 UTC
README
This package is a fork of rtconner/laravel-tagging . This is a custom version of the original package. It adds ability for tags to be associated with multiple groups
Composer Install (for Laravel 5/6/7 and Lumen 5/6/7)
composer require digu087/tcd-tagging "~4.0"
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
Configure
See config/tagging.php for configuration options.
Lumen Installation
Upgrading Laravel 4 to 5
This library stores full model class names into the database. When you upgrade laravel and you add namespaces to your models, you will need to update the records stored in the database. Alternatively you can override Model::$morphClass on your model class to match the string stored in the database.
Credits
- Robert Conner - http://smartersoftware.net