Как использовать разные формы с разными функциями контроллера и одним и тем же маршрутом в Laravel
Я создаю приложение с Laravel
В то же самое blade
файл у меня разные формы. В div
У меня есть две формы.
В одной форме user
пишет что-то в textarea
, После нажатия кнопки ОК страница перезагружается и данные сохраняются в таблице базы данных.
Другая форма появляется в модальном и содержит другую опцию, что user
Можно установить и после нажатия другой кнопки данные должны храниться в другой таблице базы данных.
Так как я могу это сделать? Я пытался route
функция в моем контроллере следующим образом:
Route::post('/anam','AnamnController@store');
Route::post('/anam','AnamnController@storePar');
и форма тега:
<form action="{{ action('AnamController@store') }}" method="post" class="form-horizontal">
<form id="formA" action="{{ action('AnamnesiController@storePar') }}" method="" class="form-horizontal">
Но они возвращают мне ошибки. Так что мне делать?
Спасибо!
2 ответа
Невозможно использовать один и тот же маршрут для двух разных функций, если вы не измените один, например, get вместо post:
Route::post('/anam','AnamnController@store');
Route::get('/anam','AnamnController@storePar');
но вы можете сделать эту логику:
Route::post('/anam','AnamnController@store');
и форма тега:
<form action="{{ action('AnamController@store') }}" method="post" class="form-horizontal">
<input name="input_name" value="input-val" />
</form>
в контроллере:
public function store (){
if(request()->input_name == 'val-1')
this->store1();
else
this->store2();
}
protected function store1 () {
//
}
protected function store2 () {
//
}
У вас не может быть двух маршрутов с одним и тем же URL-адресом, имеющих один и тот же метод маршрута.
В вашем случае у вас есть два POST
методы, идущие на тот же URL. Второе определение маршрута отменяет первый.
Переименуйте один из них.