我目前使用Laravel Provider
在每次調用時將數據傳遞到視圖。如果用戶通過身份驗證,App.blade.php
將包含刀片文件。Laravel - 在所有路由上請求的提供程序數據
我的問題是,目前,無論用戶在哪個視圖上,它仍然會調用ViewServiceProvider.php
,這看起來效率不高。
我試圖使用@if(view()->exists('home'))
,但這似乎沒有任何影響,因此,查詢仍然從ViewServiceProvider.php
調用。
App.blade.php:
@if(!Auth::guest())
@if(view()->exists('home'))
@include('layouts.check')
@endif
@endif
ViewServiceProvider.php:
public function boot()
{
view()->composer('layouts.check', function ($view) {
$sites = Site::where('trust_id', Auth::id())->get();
$view->with(['sites' => $sites]);
});
}
任何幫助將非常感激。
運行ViewServiceProvider似乎很正常,因爲它需要註冊視圖編輯器。但是,只有在使用layouts.check時才能執行閉包。如果你有一個稱爲home的視圖,那麼存在的視圖總是成立的,因爲它檢查存在而不是存在。 – vonec