PHP code example of mrnewport / laravel-nestedterms
1. Go to this page and download the library: Download mrnewport/laravel-nestedterms 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/ */
mrnewport / laravel-nestedterms example snippets
return [
'terms_table' => 'terms',
'tags_table' => 'tags',
'model_tag_table' => 'model_tag',
'term_model' => \MrNewport\LaravelNestedTerms\Models\Term::class,
'tag_model' => \MrNewport\LaravelNestedTerms\Models\Tag::class,
'allowed_cast_types' => [
'integer','float','double','boolean','string','array','json','object',
],
'custom_type_map' => [
'number' => 'integer',
],
];
use MrNewport\LaravelNestedTerms\Models\Term;
$term = Term::create([
'name' => 'Specifications',
'slug' => 'specifications', // or omit to auto-generate
]);
use MrNewport\LaravelNestedTerms\Models\Tag;
$bedrooms = Tag::create([
'term_id' => $term->id,
'name' => 'Bedrooms',
]);
$parent = Tag::create([
'term_id' => $term->id,
'name' => 'SubItem',
]);
$child = Tag::create([
'term_id' => $term->id,
'parent_id' => $parent->id,
'name' => 'Child Tag',
]);
// slug => "specifications.subitem.child-tag"
$descendants = $parent->allDescendants(); //
$tag = Tag::create([
'term_id' => $term->id,
'name' => 'NumberOfRooms',
'type' => 'integer',
'value' => '5',
]);
// Eloquent interprets $tag->value as integer
echo $tag->value; // 5
use MrNewport\LaravelNestedTerms\Traits\HasTags;
class Article extends Model
{
use HasTags;
}
$article->attachTags($tagIdOrSlug);
$article->detachTags($tagInstance);
$article->syncTags([...]);
$article->hasTag('bedrooms');
$article->tagsByTerm('specifications')->get();
// returns tags whose term->slug == "specifications"
'terms_table' => 'cms_terms',
'tags_table' => 'cms_tags',
namespace App\Models;
use MrNewport\LaravelNestedTerms\Models\Tag as BaseTag;
class CustomTag extends BaseTag
{
protected $fillable = [
'term_id','parent_id','slug','type','value','name','description','meta','is_active',
'icon','color'
];
public function generateHierarchySlug(): string
{
$slug = parent::generateHierarchySlug();
return $slug.'-extended';
}
}
'tag_model' => \App\Models\CustomTag::class,
bash
php artisan vendor:publish --provider="MrNewport\LaravelNestedTerms\Providers\NestedTermsServiceProvider" --tag=nestedterms-config
bash
php artisan migrate