Laravel 5.6 为控制器应用中间件某些方法



>Laravel 5.6 为控制器某些方法应用中间件

https://laravel.com/docs/5.6/controllers#controller-middleware

无需编写新类

class UserController extends Controller
{
public function __construct()
{
// how can apply this middleware for certain methods eg. store, update ?
$this->middleware(function ($request, $next) {
// i need modify the $request->input('name')
// before goes to method store, update
// replace any space+ to a single space
$request->merge(['name' => preg_replace('/s+/', ' ', $request->input('name'))]);
return $next($request);
});
}
public function store(Request $request)
{
dd($request->all());
}
public function update(Request $request)
{
dd($request->all());
}
}

编辑,这没有记录在 Laravel 5.6 中

public function __construct()
{
$this->middleware(function ($request, $next) {
// replace any space+ to a single space
$request->merge(['name' => preg_replace('/s+/', ' ', $request->input('name'))]);
return $next($request);
})->only(['store', 'update']);
}

你可以这样使用

$this->middleware('auth',['only' => ['store','update']]); // Another Way $this->middleware('auth',['except' => ['index','show']]);

参考: https://laracasts.com/discuss/channels/general-discussion/apply-middleware-for-certain-methods?page=0

最新更新