Header Ads

Header ADS

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

Theme images by fpm. Powered by Blogger.