【发布时间】:2019-01-09 13:35:18
【问题描述】:
我们遇到了一个奇怪的错误,我查看了我们的 Git 历史记录,几个月来没有人接触过这个控制器和属于它们的路由。
我们有一个表单,它从页面中获取GETRequest 数据并将它们从第 1 步传递到第 2 步。因此变量被插入到 URL 中,例如 /refer/step_2?name='john'&phone="9999999999" 等。
错误:
Missing required parameters for [Route: step_2] [URI: refer/step/2].
第 2 步(发布请求):
/**
* Validates data from step and moves on to step 2.
*
* @param Request $request
*/
public function step1_request(Request $request) {
// Remove any additional characters from the lead phone number.
$request['phone'] = preg_replace('/\D+/', '', $request->phone);
$request->merge(['phone' => $request['phone']]);
$validate = [
'name' => 'required',
'phone' => 'required|digits:10'
];
$validationErrorMessages = [
'phone.digits' => 'The phone number must be 10 digits. No spacing, dashes, or special characters.'
];
$validateData = $request->validate($validate, $validationErrorMessages);
//dd returns fine here.. includes the request data.
return redirect()->route('step_2', $request); // <- Error happens here. Missing required parameters for [Route: step_2]
}
第 2 步(刀片)
/**
* Returns a view to confirm the output from step 1.
*
* @param Request $request
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function step_2(Request $request) {
.....
}
路线:
Route::prefix('refer')->group(function () {
// Step 1
Route::get('/', ['uses' => 'ReferController@step_1', 'as' => 'step_1']);
Route::post('/', ['uses' => 'ReferController@step1_request']);
// Step 2
Route::get('step/2', ['uses' => 'ReferController@step_2', 'as' => 'step_2']);
Route::post('/step/2', ['uses' => 'ReferController@step2_request']);
// Step 3
Route::get('step/3', ['uses' => 'ReferController@step3', 'as' => 'step_3']);
Route::post('step/3', ['uses' => 'ReferController@step3_request']);
});
重申一下 - 这已经工作了几个月,没有任何问题。我已经清除了一个空白数据库,并将 git head 重置为我们创建它时的初始提交,但我仍然遇到同样的错误。 Laravel 等有什么更新吗?
【问题讨论】:
-
检查下面的路线重复
-
@SergeyShuryakov 好建议,但一切都很好。没有重复。
-
好的。这很奇怪。您是否尝试将路线更改为
Route::get('step/2', 'ReferController@step_2')->name('step_2');?