Laravel - невозможно изменить с контроллера для просмотра - PullRequest
0 голосов
/ 08 сентября 2018

Я создаю сайт в Laravel, который использует контроллер для проверки информации из формы, а затем возвращает пользователя на страницу с благодарностью. На этой странице благодарности я хотел бы использовать имя пользователя и пол.

В моем контроллере У меня есть:

return redirect()->route('thanks')->with(['success' => 'success', 'name' => $name, 'gender' => $gender]);

Затем, в представлении , у меня есть:

<p>{{ $name }}</p>
<p>{{ $gender }}</p>

Но по какой-то причине я продолжаю получать эту ошибку:

неопределенная переменная: имя

Что странно, так это то, что если я умираю и выкидываю $ name в контроллер, он правильно показывает его на экране.

Я пробовал разные способы передачи нескольких переменных в представление, а также разные имена и формы переменных, чтобы получить его снова ... но не смог заставить его работать.

Ребята, вы понимаете, где я могу пойти не так? Как всегда, я очень ценю вашу помощь! Все идеи, предложения и комментарии приветствуются :) Спасибо !!

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Если вы перенаправляете на URL с данными, вы можете получить сеанс формы данных.

return redirect()->route('thanks')->with(['success' => 'success', 'name' => $name, 'gender' => $gender]);

напишите в своем представлении

{{ Session::get('name') }}

{{ Session::get('gender) }}

И если вы перенаправляете прямо к представлению, как это

return view('thanks')->with(['success' => 'success', 'name' => $name, 'gender' => $gender]);

затем напишите по вашему мнению

<p>{{ $name }}</p>
<p>{{ $gender }}</p>
0 голосов
/ 08 сентября 2018

с () на перенаправлении мигает данные в сеансе, это не связано с представлениями. Вы не должны путать этот вызов метода с представлениями и перенаправлениями, поскольку они не эквивалентны.

Единственное место, где переменные передаются в представление, это то, где вы возвращаете представление:

return view('thanks')->with(['success' => 'success', 'name' => $name, 'gender' => $gender]);

Поскольку вы используете перенаправление, вам потребуется извлечь эти данные из сеанса, чтобы перейти в представление (или получить доступ к данным из сеанса непосредственно в представлении).

Или вы можете просто вернуть это представление из вашего контроллера вместо перенаправления в первую очередь.

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