我需要一个变量用于我的管理仪表板,所以我的猜测是将一些东西放在缓存中,这样我就可以在管理布局模板中访问它。 我需要将2个配置文件与链接合并:
$dashboard_links = \Auth::user()->hasRole(['root', 'admin'])
? config('dashboard')
: config('dashboard-user');
$taxonomies = Config::get('taxonomies');
foreach ($taxonomies as $name => $config)
{
$original_array = array_splice( $dashboard_links, $config['order'], 0 );
$dashboard_links = array_merge ($original_array, [$name => $config], $dashboard_links);
}
我希望基本模板“resources / views / layouts / master.blade.php”中提供$dashboard_links
。
但我不想在每个页面请求上创建变量或将其放在每个控制器中。仅当有人以管理员身份登录并访问任何管理页面时才需要它。
我在编程方面不是很好,所以我不知道什么是最好的方法。
如果有帮助,这些是我的路线:
Route::group(['middleware' => ['role:admin']], function()
{
// edit post form
Route::get('post/edit/{slug}', [
'as' => 'post-edit',
'uses' => 'Post\AdminController@edit'
]);
Route::get('medialibrary/edit/{id}', [
'as' => 'media-edit',
'uses' => 'MediaLibrary\MediaController@edit',
])->where('id', '[0-9]+');
// and so on...
});
答案 0 :(得分:2)
您应该考虑使用视图编辑器https://laravel.com/docs/5.6/views#view-composers
视图编辑器允许您将变量传递给与编辑器关联的所有视图。
因此,您将注册一个新的服务提供商,以将您的作曲家与特定路线相关联。然后在你的作曲家中弹出变量,并将其传递给所有管理员视图。