Почему метод Laravel вызывается дважды при использовании route () -> редирект с параметрами и кодом 301? - PullRequest
0 голосов
/ 14 мая 2019

Пожалуйста, помогите мне, я не знаю, почему метод Laravel вызывается дважды, когда я использую команду этой команды для перенаправления на новую страницу:

Маршрут:

Route::post('/editor/create/{productCode}', 'EditorController@create')->name('create-new-design');
Route::get('/editor/{designCode}', 'EditorController@edit')->name('edit-design');

EditorController:

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');
}

Поток: Запрос пользователя на создание нового Design с помощью действия вызова [POST]: / editor / create / {productCode} -> Серверный процесс и создание Design Record, затем перенаправьте пользователя на страницу редактора (-> / editor / {designCode}).

Вопрос: Почему функция публичной функции редактирования ($ designCode) вызывается дважды, когда пользователь перенаправляется на страницу редактирования (или перезагружает эту страницу после создания нового дизайна)?

Примечания: Этот проект я использую:

  1. Сервер Apache
  2. Laravel 5.8. *

Спасибо,

Ответы [ 2 ]

1 голос
/ 14 мая 2019

попробуйте это

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

Нет необходимости снова проходить 301.Я верю, что это может быть причиной.Или Вы можете поделиться своим методом редактирования.Он может содержать поиск политик / разрешений, который вызывает двойное выполнение.

1 голос
/ 14 мая 2019

Попробуйте так:

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

После каждого HTTP-запроса страница нуждается в обновлении.Это стандартная процедура.Если вы не хотите обновлять страницу, вы можете использовать вызовы AJAX и управлять событиями с помощью Javascript.

...