laravel 5.2如何将变量从中间件传递到route.php?
我有一个中间件,我希望它将$role传递给route.phplaravel 5.2如何将变量从中间件传递到route.php?,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我有一个中间件,我希望它将$role传递给route.php public function handle($request, Closure $next) { if ($this->auth->check()) { $role= "normal"; $user_roles = AssignedRoles::join('roles','role_user.role_id','=','roles.id') ->wh
public function handle($request, Closure $next)
{
if ($this->auth->check())
{
$role= "normal";
$user_roles = AssignedRoles::join('roles','role_user.role_id','=','roles.id')
->where('user_id', $this->auth->user()->id)->select('roles.is_admin', 'roles.is_vendor')->get();
foreach($user_roles as $item)
{
//var_dump($item->is_vendor);
//die();
if($item->is_admin==1)
{
$role = "admin";
}
if($item->is_vendor==1)
{
$role = "vendor";
}
}
if($role=="normal"){
return $this->response->redirectTo('/');
}
//$request->attributes->add(['admin' => $admin, 'vendor' => $vendor]);
$request->attributes->add(['role' => $role]);
View::share ('role', $role);
return $next($request);
}
return $this->response->redirectTo('/');
}
有办法吗
我的路线:
Route::group(['prefix' => 'admin', 'middleware' => ['auth']], function() {
Route::auth();
Route::pattern('id', '[0-9]+');
Route::pattern('id2', '[0-9]+');
#Admin Dashboard
Route::get('dashboard', 'Admin\DashboardController@index');
Route::get('vendor/{id}/edit', 'Admin\VendorController@getEdit');
Route::post('vendor/{id}/edit', 'Admin\VendorController@postEdit');
});
您可以这样做:
// In your middleware
$request->offsetSet('role', $role);
然后在routes.php中:
use Illuminate\Http\Request;
Route::get('test', ['middleware' => 'auth', function(Request $request) {
dd($request->get('role'));
}]);
在将请求$Request参数1添加到App\Providers\RouteServiceProvider::{closure}()必须是light\Http\Request的实例,light\Routing\Router的实例给定此工作,Route::group(['prefix'=>'admin','middleware'=>['auth']],function($Request){我无法使用$Request->get获得角色值('role')@hkguile,别忘了在
routes.php
文件的顶部添加use-illumb\Http\Request;
,在视图中是否要使用此特定变量?