Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel 5.2如何将变量从中间件传递到route.php?_Php_Laravel_Laravel 5.2 - Fatal编程技术网

laravel 5.2如何将变量从中间件传递到route.php?

laravel 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

我有一个中间件,我希望它将$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')
        ->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;
,在
视图中是否要使用此特定变量?