Laravel: Как передать данные с перенаправлением, которые могут использоваться контроллером при срабатывании запроса GET? - PullRequest
0 голосов
/ 07 мая 2018

У меня есть веб-страница, контроллер которой генерирует уникальный код. Из-за этого на каждом обновлении страницы создается новый код, и это не нормально.

Мое решение для этого было использовать два метода контроллера

Метод # 1 создает уникальный код и затем перенаправляет запуск второго метода контроллера. Таким образом, на странице обновления запускается контроллер № 2, а не № 1.

Метод # 1 вводит код в БД, а метод # 2 извлекает его и отображает.

Чтобы это работало, мне нужно передать идентификатор БД новому методу контроллера, который вызывается с помощью 'redirect'.

Вопрос: Как передать данные с перенаправлением, которые могут использоваться контроллером при выполнении запроса GET?


текущая попытка кода

Метод контроллера # 1 return

//make unique code
//enter into db
return redirect("/confirmed/{$model->id}");

Метод контроллера # 2

public function confirmed($id) {
    $shipments = shipments::where('id',$id)->orderBy('id', 'desc')->first(); 
    return view('confirmed', compact('shipments') );
}

подтвердить маршрут

Route::get('/confirmed/{$id}', 'ShipmentsController@confirmed');

1 Ответ

0 голосов
/ 07 мая 2018

Вы можете использовать сеанс при перенаправлении,

return redirect("/confirmed/{$model->id}")->with('unique_code', $uniqueCode);

Примечание : $uniqueCode - это код, который вы сгенерировали.

А затем в других контроллерах вы можете получить его по session('unique_code')

public function confirmed($id) {
    $uniqueCode = session('unique_code'); 
    $shipments = shipments::where('id',$id)->orderBy('id', 'desc')->first(); 
    return view('confirmed', compact('shipments') );
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...