1. Go to this page and download the library: Download cviebrock/eloquent-taggable library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cviebrock / eloquent-taggable example snippets
use Cviebrock\EloquentTaggable\Taggable;
class MyModel extends Eloquent
{
use Taggable;
}
// Pass in a delimited string:
$model->tag('Apple,Banana,Cherry');
// Or an array:
$model->tag(['Apple', 'Banana', 'Cherry']);
$model->tag('Apple,Banana,Cherry');
$model->tag('Durian');
// $model now has four tags
$model->tag('Apple,Banana,Cherry');
$model->untag('Banana');
// $model is now just tagged with "Apple" and "Cherry"
$model->detag();
// $model has no tags
$model->tag('Apple,Banana,Cherry');
$model->retag('Etrog,Fig,Grape');
// $model is now just tagged with "Etrog", "Fig", and "Grape"
// assuming no other tags exist yet ...
$model->tag('Apple','Banana','Cherry','Durian');
$newModel->tagById([1,3]);
// ... $newModel is tagged with "Apple" and "Cherry"
// assuming no other tags exist yet ...
$model->tag('Apple','Banana','Cherry','Durian');
$model->untagById([1,3]);
// ... $model is now only tagged with "Banana" and "Durian"
$model->tag('Apple,Banana,Cherry');
// tests use the normalized tag name
var_dump($model->hasTag('apple'));
// bool(true)
var_dump($model->hasTag('Durian'));
// bool(false)
// Find models that are tagged with all the given tags
// i.e. everything tagged "Apple AND Banana".
// (returns models with Ids: 3, 4, 8)
Model::withAllTags('Apple,Banana')->get();
// Find models with any one of the given tags
// i.e. everything tagged "Apple OR Banana".
// (returns Ids: 2, 3, 4, 6, 7, 8)
Model::withAnyTags('Apple,Banana')->get();
// Find models that have any tags
// (returns Ids: 2, 3, 4, 5, 6, 7, 8)
Model::isTagged()->get();
// Find models that are not tagged with all the given tags,
// i.e. everything not tagged "Apple AND Banana".
// (returns models with Ids: 2, 5, 6, 7)
Model::withoutAllTags('Apple,Banana')->get();
// To also ds: 5)
Model::withoutAnyTags('Apple,Banana')->get();
// To also
// Passing an empty tag list to a scope either throws an
// exception or returns nothing, depending on the
// "throwEmptyExceptions" configuration option
Model::withAllTags('');
Model::withAnyTags('');
// Returns nothing, because the "Fig" tag doesn't exist
// so no model has that tag
Model::withAllTags('Apple,Fig');
// Find models with any one of the given tags
// i.e. everything tagged "Apple OR Banana"
// but without one of the given tags
// i.e. everything NOT tagged "Cherry".
// (returns Ids: 2, 3, 6, 7, 8)
Model::withAnyTags('Apple,Banana')::withoutAnyTags('Cherry')->get();
// Find models that are not tagged with all the given tags,
// i.e. everything not tagged "Apple AND Banana".
// and models without any one of the given tags
// i.e. everything not tagged "Cherry OR Durian".
// (returns models with Ids: 2)
Model::withoutAllTags('Apple,Banana')::withoutAnyTags('Cherry,Durian')->get();
// Find models with any one of the given tags
// i.e. everything tagged "Apple OR Banana".
// AND tagged "Cherry OR Durian".
// (returns Ids: 4, 6, 7, 8)
Model::withAnyTags('Apple,Banana')::withAnyTags('Cherry,Durian')->get();
// Returns an array of tag names used by all Model instances
// e.g.: ['apple','banana','cherry','durian']
Model::allTags();
// Same as above, but as a delimited list
// e.g. 'apple,banana,cherry,durian'
Model::allTagsList();
// Returns a collection of all the Tag models used by any Model instances
Model::allTagModels();
// in your EventServiceProvider
use Cviebrock\EloquentTaggable\Events\ModelTagged;
...
protected $listen = [
...
ModelTagged::class => [
ReactModelTagged::class // your Listener class
]
...
];
namespace App\Listeners;
use Cviebrock\EloquentTaggable\Events\ModelTagged;
class ReactModelTagged
{
/**
* Handle the event.
*
* @param ModelTagged $event
* @return void
*/
public function handle(ModelTagged $event)
{
dd($event->getModel(), $event->getTags());
}
}
// Instantiate the service (can also be done via dependency injection)
$tagService = app(\Cviebrock\EloquentTaggable\Services\TagService::class);
// Return a collection of all the Tag models used by \App\Model instances
// (same as doing \App\Model::allTagModels() ):
$tagService->getAllTags(\App\Model);
// Return a collection of all the Tag models used by all models:
$tagService->getAllTags();
// Rename all tags from "Apple" to "Apricot" for the \App\Model uses
// (same as doing \App\Model::renameTag("Apple", "Apricot") ):
$tagService->renameTags("Apple", "Apricot", \App\Model);
// Rename all tags from "Apple" to "Apricot" across all models:
$tagService->renameTags("Apple", "Apricot");
// Get the most popular tags across all models, or for just one model:
$tagService->getPopularTags();
$tagService->getPopularTags($limit);
$tagService->getPopularTags($limit, \App\Model);
$tagService->getPopularTags($limit, \App\Model, $minimumCount);
// Find all the tags that aren't used by any model:
$tagService->getAllUnusedTags();
// default normalization
'normalizer' => 'mb_strtolower',
// same result, but using a closure
'normalizer' => function($string) {
return mb_strtolower($string);
},
// using a class method
'normalizer' => ['Illuminate\Support\Str', 'slug'],
echo $tag->normalized;
'taggedModels' => [
'posts' => \App\Post::class
]
$posts = Tag::findByName('Apple')->posts;
sh
php artisan vendor:publish --provider="Cviebrock\EloquentTaggable\ServiceProvider" --tag "config"
sh
php artisan vendor:publish --provider="Cviebrock\EloquentTaggable\ServiceProvider" --tag "migrations"
sh
composer dump-autoload
php artisan migrate
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.