2016-11-29 15 views
1

Я пробовал множество решений от других сообщений, но до сих пор не могу заставить его работать.Две формы на одном взгляде в Laravel 4

У меня есть две формы на странице (вид)

{{ Form::open(array('action' => '[email protected]')) }} 
    ....// form fields 

    <button type="submit" class="btn btn-primary">Change</button> 
{{ Form::close() }}   
    <hr/> 
{{ Form::open(array('action' => '[email protected]')) }} 
    ....// second form fields 

    <button type="submit" class="btn btn-primary">Save Changes</button> 
{{ Form::close() }} 

Тогда в маршрутах у меня есть

Route::post('/admin/preferences', ['uses' => '[email protected]', 'before' => 'csrf|admin']); 
Route::post('/admin/preferences', ['uses' => '[email protected]', 'before' => 'csrf|admin']); 

Когда я ударил представить изменения кнопку ничего в базе данных. Просто обновлена ​​страница, и я получил сообщение о успехе из FIRST, даже если я отправлю второй.

Это потому, что URL-адреса в маршрутах одинаковы для обоих сообщений?

Update: Первая форма поля ввода:

<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" <?php if ($settings['preferences_shop_mode'] == 0){ ?> checked="checked" value="1"<?php }else{ ?> value="0" <?php } ?>> 

Здесь я проверяю, если предпочтение = 0, чтобы установить значение 1, в противном случае значение = 0. В источнике я вижу, что значение =1, который является правильным, потому что в базе данных у меня 0

<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" checked="checked" value="1"> 

Это контроллер

public function shopMode() { 

    $preferences = Preferences::where('preferences_id', 1)->first(); 
    if (!$preferences) { 
     App::abort(404); 
    } 

    Input::merge(array_map('trim', Input::all())); 

    $preferences->preferences_shop_mode = Input::get('onoffswitch');   
    $preferences->save(); 
    return Redirect::to('/admin/preferences')->with('message', 'Shop mode changed successfully.'); 
} 

Любая идея почему не обновляется в базе данных?

ответ

3

Маршруты считываются в каскаде. Поскольку оба маршрута имеют один и тот же путь, первый приоритет (запись была найдена, поэтому дальнейший поиск маршрута не требуется).

Вы должны разделить их просто разными путями, например:

Route::post('/admin/preferences/general', ['uses' => '[email protected]', 'before' => 'csrf|admin']); 
Route::post('/admin/preferences/shop', ['uses' => '[email protected]', 'before' => 'csrf|admin']); 
+1

Большое спасибо, но вторая форма не представляет изменения в базе данных .. Я обновил мой вопрос. Пожалуйста, вы можете проверить? –

+0

Ну, это совершенно другой вопрос. Поведение флажков отличается от остальных, если оно не отмечено, поле не поступает по запросу. См. [Этот вопрос] (http://stackoverflow.com/questions/1809494/post-the-checkboxes-that-are-unchecked), это поможет. Дай мне знать! – alariva

+0

Но у меня всегда есть значение 0 или 1. Когда оно опубликовано, я должен получить это значение, нет? –

 Смежные вопросы

  • Нет связанных вопросов^_^