Heim > Fragen und Antworten > Hauptteil
Zum Beispiel
Route::group(['prefix'=>'code/{code}','middleware'=>'code'],function(){
});
Wie kann $code an Middleware übertragen werden~
Vielen Dank!
我想大声告诉你2017-05-16 16:57:18
中间件也可以接收额外的自定义参数。例如,如果你的应用需要验证用户是否在执行 action 之前拥有给定的 “角色”,你可以创建一个接受角色名称作为额外参数的 RoleMiddleware
中间件。
中间件的额外参数会在 $next
参数后传入:
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware
{
/**
* Run the request filter.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string $role
* @return mixed
*/
public function handle($request, Closure $next, $role)
{
if (! $request->user()->hasRole($role)) {
// Redirect...
}
return $next($request);
}
}
中间件参数可以在定义路由时将中间件的名称和参数用 :
隔开来指定。多个参数应当用逗号隔开:
Route::put('post/{id}', ['middleware' => 'role:editor', function ($id) {
//
}]);
详情参考:http://www.golaravel.com/laravel/docs/5.1/middleware/#middleware-parameters