【发布时间】:2018-07-01 12:59:22
【问题描述】:
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']);
}
【问题讨论】:
-
middleware的第二个参数,也是在middleware之后调用的构建器方法 -
@lagbox 我编辑了我的问题,它正确/合法吗?但它似乎工作大声笑
标签: laravel