Laravel 4 - Mehrere Formulare auf derselben Seite?
Ich habe ein seltsames Verhalten mit meiner Formen in Laravel 4. Ich habe eine Seite "Einstellungen" mit zwei Formen, jeweils (angeblich) BEITRAG zu einer controller-Methode, update der Datenbank und kehren Sie zurück zur Seite Einstellungen. Jedoch, es scheint ein Problem zu sein, entweder mit der Art, wie meine Formen sind zu arbeiten oder meine Routen.
Hier ist, wie es ist, vereinfacht:
Einstellungen Seite: (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>
Also im Grunde zwei getrennte Formulare auf derselben Seite, dass die post, um zwei separate Verfahren, die in der gleichen Controller - wenn die Methode erfolgreich ist, leitet es Sie zurück zu "Einstellungen". Ich will nicht die post-Methoden, da diese getestet und Sie funktionieren, ich glaube das problem ist in der Routen-Datei:
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');
});
});
Nun ich bin mir ziemlich sicher, dass es nicht wie die beiden POST-Routen sein wie die, aber ich kann mir nicht vorstellen einen anderen Weg, es zu tun, da die Formulare sind auf der gleichen Seite. Ich bekomme die Fehlermeldung:
Unknown action [SettingController@editOption].
Da die option form kommt zuerst, denke ich. Wenn ich das open-form-Klinge-code (für beide), lädt er die Seite - aber offensichtlich ist die form nicht tun.
Jede Hilfe wäre nett! Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht fügen Sie zwei gleiche Routen mit verschiedenen Aktionen, weil Sie weitergegeben werden zuerst abgestimmt route und in Ihrem Fall
SettingController@editOption
. Ändern Sie Ihre Routen auf :Als in beiden Aktionen können Sie umleiten zu '/':
return Redirect::back()
, und wenn Fehler aufgetreten:Meine alternative Lösung für dieses ist zum erstellen einer versteckten html-input in jeder form und machen die Steuerung zu identifizieren, welche für die eingereicht wird, basiert in diesem Bereich. So, yu nur eine Strecke für beide.