Laravel 5.7 Передача значения в маршрут в контроллере - PullRequest
0 голосов
/ 30 января 2019

Мой контроллер отправляет форму для создания новой страницы.После публикации формы мне нужно перенаправить пользователя на новую страницу, на которой будет содержаться содержимое этой страницы, которое было введено в предыдущей форме.Если я просто верну view('mynewpageview', compact('mycontent'));, где mycontent - это объект, используемый для выполнения команды $mycontent->save();, я рискну, если кто-нибудь обновит URL-адрес, опубликовав один и тот же контент дважды, создав новую страницу.

Вместо этого я хотел бы перенаправить пользователя на фактический URL-адрес страницы.

Мой маршрут - Route::get('/newpage/{id}', 'PageController@pagebyid');, и если я использую return redirect()->route('/newpage/$pageid');, где $pageid = $mycontent->id;, я получаю ошибку Route notfined.

Каким было бы решение, запрещающее повторную отправку содержимого или правильный синтаксис для передачи параметра?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

При использовании базовых (неназванных) маршрутов правильный синтаксис был return redirect('/newpage/'.$pageid);

Вы уже обнаружили, что можете альтернативно использовать именованные маршруты .

Последний, но непо крайней мере, спасибо, что рассмотрели вопрос «двойной подачи»!Вы фактически реализовали шаблон PRG :)

0 голосов
/ 30 января 2019

Правильный ответ, который мне подходит, -

  1. Дайте вашему маршруту имя в файле маршрутов
  2. Затем передайте параметры с массивом, как показано ниже в контроллере.

return redirect () -> route ('newpageid', ['id' => $ pageid]);

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