Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток!
В laravel недавно, как и в программировании
Версия Laravel в формате 5.4
На одной странице, 3 формы обратной связи.
1. Форма Recall
<form method="post" action="{{ route('recalls') }}" >
{{ csrf_field() }}
//Здесь форма
</form>
2. Форма Job
<form method="post" action="{{ route('jobs') }}">
{{ csrf_field() }}
//Здесь форма
</form>
2. Форма Contact
<form method="post" action="{{ route('infos') }}" >
{{ csrf_field() }}
//Здесь форма
</form>
Как правильно прописать маршруты? Чтобы обработать формы?
Route::get('/',['as' => 'homes', 'uses' => 'IndexController@show']);
Route::post('/', ['as' => 'infos', 'uses' => 'IndexController@info']);
Route::post('/', ['as' => 'recalls', 'uses' => 'IndexController@recall']);
Route::post('/', ['as' => 'jobs', 'uses' => 'IndexController@job']);
Изменено LesoRub (17.05.2017 06:18:07)
Не в сети
Действительно не будет работать. Вот так надо, что бы урл был уникальный для каждой формы.
Route::get('/',['as' => 'homes', 'uses' => 'IndexController@show']);
Route::post('/feedback/info', ['as' => 'infos', 'uses' => 'IndexController@info']);
Route::post('/feedback/recall', ['as' => 'recalls', 'uses' => 'IndexController@recall']);
Route::post('/feedback/job', ['as' => 'jobs', 'uses' => 'IndexController@job']);
Ну и я бы экшены для каждой формы вынес или в общий контроллер FeedbackController или вообще в свой для каждой формы.
Изменено DBR (17.05.2017 08:01:15)
Не в сети
}%--А разве этот код не работает?--
Действительно не будет работать. Вот так надо, что бы урл был уникальный для каждой формы.
%%(php)
Route::get('/',['as' => 'homes', 'uses' => 'IndexController@show']);
Route::post('/feedback/info', ['as' => 'infos', 'uses' => 'IndexController@info']);
Route::post('/feedback/recall', ['as' => 'recalls', 'uses' => 'IndexController@recall']);
Route::post('/feedback/job', ['as' => 'jobs', 'uses' => 'IndexController@job']);
%%Ну и я бы экшены для каждой формы вынес или в общий контроллер FeedbackController или вообще в свой для каждой формы.
В том то и проблема, страница всего одна
Я бы мог отдельно в assets вынести php обработчики формы, и все заработает. Но хотелось бы сделать это средствами laravel.
Изменено LesoRub (17.05.2017 08:25:13)
Не в сети
нет, DBR всё правильно пишет. обработчики не являются страницами как таковыми – они могут получить данные, сохранить их и отредиректить пользователя обратно на ту же страницу, с которой была сделана отправка. страница на сайте будет одна, а маршрутов много.
потом можно (или даже нужно!) будет отправку сделать аяксом на те же адреса и просто в обработчике проверять что если отправлено аяксом – отдавать json-ответ а если нет – редирект
Не в сети
Не в сети
Если сильно хочется чтобы путь был именно '/' - вместо Route::post можно использовать еще Route::put и Route::delete (естественно метод надо в форе указать). Но мне кажется, это от лукавого.
Можно, но это извращение! )
Изменено DBR (17.05.2017 19:29:22)
Не в сети
Не в сети
Страницы 1