为什么 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) 在用户被重定向到编辑页面(或在创建新设计后重新加载此页面)时被调用两次?


备注:
这个项目,我正在使用:

  1. Apache 服务器
  2. Laravel 5.8.*


谢谢,

这样试试:

return redirect()->route('edit-design', $newDesignCode);

每次 HTTP 请求后,页面都需要刷新。这是标准程序。如果您不想刷新页面,可以使用 AJAX 调用并使用 Javascript 管理事件。

试试这个

return redirect()->route('edit-design', ['designCode' => $newDesignCode]);

无需再次通过 301。我相信这可能是原因。或者您可以分享您的编辑方法。它可能包含导致双重执行的 policies/permission 查找。