php/laravel | Как после редирекста со страницы передать данные на ту страницу
На странице 'create' мы получаем данные из формы и перенаправляем на страницу 'store' что сохранит эти данные в бд, после переадресовываем на страницу 'create', после этой переадресации хочу что-бы на странице 'create' выводилось сообщение что данные успешно загружены. Сложно передать весь код из за того что он по разным файлам. Вот функция код функции store, что делает переадресацию:
public function store() {
$postData = request()->validate([
'info' => 'max:40|min:1',
'description' => 'min:1|max:255'
]);
posts::create($postData);
$isDone = 'done ^)';
return redirect()->route('crud.create')->with($isDone);
}
Ответы (2 шт):
Делается всё довольно просто.
Во первых. Не относится к ответу на вопрос posts::create($postData); Почему модель с маленькой буквы и во множественном числе? не надо так...
Во вторых все данные сохраняются в сессию когда помещаются в метод with то есть доступны так: session('key'). Вы можете их вывести на вашем шаблоне.
@if(session('key'))
<span>{{ session('key') }}</span>
@endif
В третьих при передачи в with лучше передавайте массив. Например так: ->with(['message' => 'Сохранено']). или используйте функцию compact
Можно сделать следующее
public function store() {
$postData = request()->validate([
'info' => 'max:40|min:1',
'description' => 'min:1|max:255'
]);
posts::create($postData);
return redirect(route('crud.create'))->with('success', 'Поздравляем запись создана!'); //нейминг в with делай произвольный.
}
Затем в шаблонизаторе blade выведи текст который ты вписал в with через
@if(session('success'))
<p>{{ session('success') }}</p>
@endif