php - Laravel Middleware Too little arguments to function error
问题描述
我正在尝试设置一个中间件来检查表单提交时输入是否为空以更新用户设置,如果是,则将它们返回到同一页面并出现错误。当我设置它时,它给了我错误
Too few arguments to function App\Http\Middleware\AdminUserUpdate::handle(), 2 passed in /var/www/market/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php on line 167 and exactly 3 expected
这似乎是我通过的 id,这是我的其余代码
中间件:
public function handle(Request $request, Closure $next, $id)
{
if($request->input('username') == NULL) {
return redirect()->route('admin.members.view', $id)->with('error', 'You must enter a username for this user in order to update their account!');
} elseif($request->input('email') == NULL) {
return redirect()->route('admin.members.view', $id)->with('error', 'You must enter a email for this user in order to update their account!');
} elseif($request->input('admin') == NULL) {
return redirect()->route('admin.members.view', $id)->with('error', 'You must select whether this user is a root admin or not in order to update their account!');
} elseif($request->input('banned') == NULL) {
return redirect()->route('admin.members.view', $id)->with('error', 'You must select whether this user is banned or not in order to update their account!');
} elseif($request->input('role') == NULL) {
return redirect()->route('admin.members.view', $id)->with('error', 'You must select a role for this user in order to update their account!');
}
return $next($request);
}
核心:
'AdminUserUpdate' => \App\Http\Middleware\AdminUserUpdate::class,
路线:
Route::middleware(['AdminUserUpdate'])->group(function () {
Route::post('/app/members/{id}/submit', 'App\Http\Controllers\Admin\Members\IndexController@Submit')->name('admin.members.submit');
});
我已经通过了 ID,因此我可以将它们返回到特定用户 ID 的视图页面,但由于某种原因,它似乎不喜欢那样。有人有什么想法吗?
解决方案
中间件不读取路由参数。使用冒号将参数传递给中间件。
Route::middleware(['AdminUserUpdate:123'])->group(function () {
推荐阅读
- azure - 如何确保 Azure Dev Ops Pipeline 中的代理具有对存储帐户的防火墙访问权限?
- amazon-web-services - 是否有可能多个实例运行一个 SQS 队列?
- vim - vimrc 中的折叠设置在 vimwiki 中不起作用
- vhdl - 在 VHDL 中添加纹波进位延迟
- swift - Siri 意图响应/参数确认无法正常工作
- php - Google Pay for Passes:如何在锁定屏幕上显示忠诚度消息
- javascript - 使用 es6 更好地映射两个不同的对象
- python - 阅读文档 autodoc 适用于 Master 但不是最新版本
- python - Pyspark 模块与纱线的使用
- reactjs - 如何使函数在反应 js 中暂停执行 n 秒?