在laravel中,我有一个侧边栏,显示用户的每日条目计数
在每个控制器功能中,由于必须始终显示侧边栏,因此我必须具备以下条件。
$data['entry_count_today'] = Data_group1::TodayCount('group1', Auth::user()->id)->count();
必须要有一种更好的方法,而不是仅将其粘贴到每个函数中,就可以在整个控制器中使用它。
建议?
答案 0 :(得分:1)
您可以创建自定义中间件并将数据共享到所需的任何视图。
php artisan make:middleware Sidebar
在生成的中间件句柄函数中添加以下内容:
$data['entry_count_today'] = Data_group1::TodayCount('group1', Auth::user()->id)->count();
\View::share('data', $data);
return $next($request);
将中间件添加到Kernel.php中的$ routeMiddleware数组中:
protected $routeMiddleware = [
...
'sidebar' => \App\Http\Middleware\Sidebar::class,
...
];
最后在您的路由文件夹web.php中:
Route::group(['middleware' => ['sidebar']], function(){
//add routes you want the data to be passed on
});
在视图中,您可以使用$data['entry_count_today']