У меня странное поведение с моими формами в Laravel 4. У меня есть страница «настроек» с двумя формами, каждая из которых (должна) выполнять POST в метод контроллера, обновлять базу данных и возвращаться на страницу настроек. Однако, похоже, проблема связана либо с тем, как работают мои формы, либо с моими маршрутами.
Вот как это в упрощенном виде:
Страница настроек: (site.com/settings)
<div id="form-one" class="form-area">
{{ Form::open(array('action' => 'SettingController@editOption')) }}
{{ Form::text('optionvalue', 'Default')) }}
{{ Form::submit('Save Changes') }}
{{ Form::close() }}
</div>
<div id="form-two" class="form-area">
{{ Form::open(array('action' => 'SettingController@editPage')) }}
{{ Form::text('pagevalue', 'Default')) }}
{{ Form::submit('Save Changes') }}
{{ Form::close() }}
</div>
Итак, по сути, две отдельные формы на одной странице, которые отправляют два отдельных метода в один и тот же контроллер - когда метод успешен, он перенаправляет их обратно в «настройки». Я не буду публиковать методы, поскольку они протестированы и работают, я считаю, что проблема в файле маршрутов:
routes.php
// Checks if a session is active
Route::group(array('before' => 'require_login'), function()
{
Route::group(array('prefix' => 'settings'), function()
{
Route::get('/', 'SettingController@index');
Route::post('/', 'SettingController@editOption');
Route::post('/', 'SettingController@editPage');
});
});
Теперь я почти уверен, что ему не нравятся два таких маршрута POST, однако я не могу придумать другого способа сделать это, поскольку формы находятся на одной странице. Я получаю сообщение об ошибке:
Unknown action [SettingController@editOption].
Поскольку форма опциона на первом месте, я думаю. Если я беру код лезвия открытой формы (для обоих), он загружает страницу, но, очевидно, форма ничего не делает.
Любая помощь была бы хороша! Заранее спасибо.