【发布时间】:2017-08-28 21:23:40
【问题描述】:
我有以下代码:
Route::group(['middleware' => ['auth']], function () {
dd($user);
Route::get('/', 'SiteController@index');
});
$user在AppServiceProvider中创建,但在Route中无法访问:
public function boot()
{
view()->composer('layouts.main', function($view){
$employees = \App\Bamboo::getEmployees();
$employeeIndex = \App\Bamboo::getEmployeeIndex(auth()->user()->email, $employees);
$view->with('employees', $employees);
$view->with('user', $employees['employees'][$employeeIndex]);
});
}
我是否有理由根据 role(包含在 $user 中)选择将在 SiteController 中调用哪个函数?
我想做这样的事情:
$method = $user->role === 'dev' ? 'index' : 'admin';
Route::get('/', "SiteController@{$method}");
这可能吗?
【问题讨论】:
-
为具有角色的路由定义一个中间件:laravel.com/docs/5.4/middleware
-
我有点迷路了 - 我看不到如何将 user 传递给中间件(在 AppServiceProvider 中创建的中间件
标签: laravel laravel-5 laravel-5.4