Пожалуйста, помогите мне, я не знаю, почему метод 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');
}


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


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


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

  1. Сервер Apache
  2. Ларавел 5.8. *


Спасибо,

0
Tho Bui Ngoc 14 Май 2019 в 13:10

2 ответа

Лучший ответ

Попробуй это

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

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

1
Noob Coder 14 Май 2019 в 10:27

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

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

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

1
Kévin Bibollet 14 Май 2019 в 10:26