Package based on rtconner/laravel-tagging
Laravel 5 Documentation Laravel 4 Documentation
Original
composer require rtconner/laravel-tagging "~2.2"Modified package
composer require italomoralesf/laravel-taggingThe service provider does not load on every page load, so it should not slow down your app. In config/app.php You may add the the TaggingServiceProvider in the providers array as follows:
If you're using Laravel 5.5+ let the package auto discovery make this for you.
'providers' => [
Italomoralesf\Tagging\Providers\TaggingServiceProvider::class,
];Then publish the configurations and migrations by:
php artisan vendor:publish --provider="Italomoralesf\Tagging\Providers\TaggingServiceProvider"
php artisan migrateclass Article extends \Illuminate\Database\Eloquent\Model {
use \Italomoralesf\Tagging\Taggable;
}$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
Italomoralesf\Tagging\Model\Tag::where('count', '>', 2)->get(); // return all tags used more than twice
Article::existingTags(); // return collection of all existing tags on any articlesMore examples in the documentation
I eliminated the group function, the original package has this function
See config/tagging.php for configuration options.
See the docs/ folder for more documentation.
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.
- Robert Conner - http://smartersoftware.net