Laravel Menu submenu dynamic process
class Menu extends Model
{
use HasFactory;
protected $guarded = [];
public function children()
{
return $this->hasMany(self::class, 'parent');
}
}
//blade file code for menu sub-menu
<nav class="navbar">
<a href="#" id="remove" class="fas fa-times"></a>
<ul>
@foreach (\App\Models\Menu::where('parent',0)->with('children')->get() as $menu)
<li>
<a href="{{ $menu->url }}">{{ $menu->title }}</a>
@if ($menu->children->count())
<ul>
@foreach ($menu->children as $child)
<li><a href="{{ $child->url }}">{{ $child->title }}</a></li>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>
</nav>
//menu migration code
Schema::create('menus', function (Blueprint $table) {
$table->id();
$table->string('title', 240);
$table->integer('parent')->default(0);
$table->string('slug')->nullable();
$table->string('url')->nullable();
$table->boolean('is_active')->default(0);
$table->timestamps();
});
//in db url field enter url from match with route url
like, (/, /contact, /blog, /how-to-apply) etc
No comments