为什么 Laravel 方法在使用 route()->redirect with parameters & code 301 时调用两次?
Why Laravel method call twice when using route()->redirect with parameters & code 301?
请帮助我,我不知道为什么 Laravel 方法在我使用命令重定向到新页面时被调用两次:
路线:
Route::post('/editor/create/{productCode}', 'EditorController@create')->name('create-new-design');
Route::get('/editor/{designCode}', 'EditorController@edit')->name('edit-design');
编辑控制器:
public function create($productCode) {
// .. do some thing & redirect to editor page
return redirect()->route('edit-design', ['designCode' => $newDesignCode], 301);
}
public function edit($designCode){
// this method is called twice
$design = Design::where('code', '=', $designCode)->first();
// do extra options --> return editor edit view
return view('editor.edit');
}
流量:
用户请求通过调用操作创建新设计 [POST]: /editor/create/{productCode} --> 服务器处理并创建设计记录,然后将用户重定向到编辑器页面 (--> /editor/{designCode }).
问题:
为什么 function public function edit($designCode) 在用户被重定向到编辑页面(或在创建新设计后重新加载此页面)时被调用两次?
备注:
这个项目,我正在使用:
- Apache 服务器
- Laravel 5.8.*
谢谢,
这样试试:
return redirect()->route('edit-design', $newDesignCode);
每次 HTTP 请求后,页面都需要刷新。这是标准程序。如果您不想刷新页面,可以使用 AJAX 调用并使用 Javascript 管理事件。
试试这个
return redirect()->route('edit-design', ['designCode' => $newDesignCode]);
无需再次通过 301。我相信这可能是原因。或者您可以分享您的编辑方法。它可能包含导致双重执行的 policies/permission 查找。
请帮助我,我不知道为什么 Laravel 方法在我使用命令重定向到新页面时被调用两次:
路线:
Route::post('/editor/create/{productCode}', 'EditorController@create')->name('create-new-design');
Route::get('/editor/{designCode}', 'EditorController@edit')->name('edit-design');
编辑控制器:
public function create($productCode) {
// .. do some thing & redirect to editor page
return redirect()->route('edit-design', ['designCode' => $newDesignCode], 301);
}
public function edit($designCode){
// this method is called twice
$design = Design::where('code', '=', $designCode)->first();
// do extra options --> return editor edit view
return view('editor.edit');
}
流量:
用户请求通过调用操作创建新设计 [POST]: /editor/create/{productCode} --> 服务器处理并创建设计记录,然后将用户重定向到编辑器页面 (--> /editor/{designCode }).
问题:
为什么 function public function edit($designCode) 在用户被重定向到编辑页面(或在创建新设计后重新加载此页面)时被调用两次?
备注:
这个项目,我正在使用:
- Apache 服务器
- Laravel 5.8.*
谢谢,
这样试试:
return redirect()->route('edit-design', $newDesignCode);
每次 HTTP 请求后,页面都需要刷新。这是标准程序。如果您不想刷新页面,可以使用 AJAX 调用并使用 Javascript 管理事件。
试试这个
return redirect()->route('edit-design', ['designCode' => $newDesignCode]);
无需再次通过 301。我相信这可能是原因。或者您可以分享您的编辑方法。它可能包含导致双重执行的 policies/permission 查找。