#laravel #view #routes #crud
#ларавель #Вид #маршруты #мразь
Вопрос:
Это немного сложно понять даже в названии, которое я поставил. Извините за это, я просто не знаю, как это четко объяснить, но я постараюсь… Так, например, у меня есть контроллер, и внутри этого контроллера у меня есть функция, которая возвращает данные в таблице моей базы данных. затем в последнем столбце каждой строки я делаю параметры просмотра, добавления,редактирования и удаления в виде ссылок. Например, когда пользователь нажимает на кнопку добавить, он перенаправляется на страницу добавления. После того, как они отправят форму на странице добавления. они должны быть перенаправлены на первую страницу, которая возвращает данные из таблицы. но проблема в том, что переменные цикла foreach на первой странице больше не распознаются laravel. поскольку они не были обработаны, так как маршрут не идет к контроллеру, а к функции, которая возвращает данные, вместо этого он переходит к функции добавления.
Поэтому я хочу знать, есть ли вообще способ решить эту проблему? Если бы вы могли предоставить пример кода, я был бы вам очень признателен
Комментарии:
1. Пожалуйста, опубликуйте свой код, а затем укажите свою проблему с тем, что у вас есть до сих пор. Таким образом, вам будет легче помочь. Возьмите за привычку публиковать свой код, например, не просто упоминайте контроллер и его метод, публикуйте его также. Ура!
Ответ №1:
Из вашего объяснения я полагаю, что код для возврата на исходную страницу после добавления, редактирования и т. Д. Просто return redirect()-gt;back()
. Это приведет пользователя обратно на предыдущую страницу. Что касается непрерывности данных, то одним из подходов было бы рассмотреть возможность использования сеансов. Они сохраняют данные по всему миру и могут быть доступны с любого контроллера после сохранения. Для этого просто сохраните данные session(['session_name' =gt; $data])
и используйте их для извлечения session('session_name')
. Дайте мне знать, если это поможет!
Ответ №2:
Если вы хотите перенаправить ti после чего-то вроде входа в систему или процесса активации, вы можете сделать это с помощью чего-то вроде этого:
return redirect()-gt;to('login')
Вы можете указать путь с вашего web.php файл, как вы можете видеть в моем примере в ‘myPath’
Как правильно указал @DerickMasai, лучше использовать именованные маршруты вместо жесткого кодирования самого пути.
Присвоение имени маршруту может работать следующим образом:
Route::get('/login', [LoginController::class, 'index'])-gt;name('login');
Комментарии:
1. Лучшим подходом к этому было бы использовать именованные маршруты вместо жесткого кодирования их в «/mypath». Это уменьшает количество точек отказа в случае изменения пути в будущем.
2. @DerickMasai ты совершенно прав, да! Я отредактирую его 🙂
3. То, что я имел в виду, использует имя в перенаправлении примерно так
return redirect()-gt;route('login');
4. да, я забыл отредактировать имя в заявлении о возврате, ха-ха