在 Laravel 中建立動態 navbar

我們網站常常會在上方會有一個 navbar ,有時候會需要去抓取資料庫動態的資料來顯示。

但是我們又不可能在每個 Controller 去寫這段程式,然後在放到 blade ,這樣真的太暴力,而且往後也不好維護。所以我們可以利用 AppServiceProvider 來達成這件事情

我們可以直接在 AppServiceProvider.php 中,加入程式碼:

<?php

namespace App\Providers;
use App\User;
use View;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
   
    public function register()
    {
        //
    }

    
    public function boot()
    {
        Schema::defaultStringLength(191);
        View::composer('*', function($view)
        {
            $users= User::all(); // 假設我們要抓取資料庫的 users 表
            $view->with('users', $users); // 使用全域的 view 輔助函式回傳 Blade 視圖
        });
    }
}

最後,我們就在我們 navbar 需要使用的地方,可以拿到 $users 為我們帶來的資料。

  @foreach ($users as $user)
         <p>{{$user->name}} </p>
   @endforeach

這樣,我們就完成了有關如何在 Laravel 中創建動態 navbar 的方法囉!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *