Код Laravel, который вы разместили, является правильным на правильно настроенном веб-сайте.Ошибка из ваших комментариев:
Объект не найден!Запрашиваемый URL не найден на этом сервере.Ссылка на ссылающейся странице кажется неправильной или устаревшей.Пожалуйста, сообщите автору этой страницы об ошибке.Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.Ошибка 404 localhost Apache / 2.4.33 (Win32) OpenSSL / 1.1.0h PHP / 7.2.7
представляет собой страницу ошибки Apache , что означаетэто вовсе не запрос страницы из вашего проекта laravel.Данные, вероятно, сохраняются в вашей базе данных, но затем вы перенаправляете на страницу, которая находится за пределами вашего проекта, и Apache не может ее найти.
Ваш веб-сайт расположен по адресу http://localhost/laravel/public
, что означает, что вам нужнодля доступа к странице проектов на http://localhost/laravel/public/projects
.Однако redirect('/projects')
дает вам абсолютный путь вместо относительного пути, отправляя вас на http://localhost/projects
, который не существует.
Решения
Поскольку это локальный проект разработки, я собираюсь пропустить проблемы с неправильной конфигурацией Apache и сосредоточиться на других способах избежать ошибки.
Вариант 1
Использование именованный маршрут :
Route::get('/projects','ProjectsController@index')->name('projects.index');
и использовать имя маршрута для перенаправления:
return redirect()->route('projects.index');
Этот должен генерировать правильные URL-адреса в пределахваш проект.
Опция 2
Используйте serve
для разработки вместо Apache.
Откройте терминал в каталоге вашего проекта Laravel и выполните эту команду:
php artisan serve
Это запустит встроенный веб-сервер PHP на http://localhost:8000,, полностью пропуская Apache.Во время разработки это прекрасно.