2016-08-06 35 views
0

Ich frage mich nur in meinem Projekt. Ich habe eine Form, die den Zugriff auf localhost/app/esetting/mymail sein kann, und dies ist der Code in der Ansicht:Laravel 5, Formular submit Umleitung zu unbekannten URL-Wert

.... 
<form action="{{ url('app/esetting/emailautomsave') }}" class="form-horizontal" method="post" enctype="multipart/form-data"> 
         {{ csrf_field() }} 
... 
<input type="submit" value="save"> 
</form> 

aber wenn ich versuche, für Formularübermittlung klicken, ich erwarte, dass es zu app/esetting/emailautomsave gehen und nenne es Steuerung, die auf ist meine SettingsController.php.

public function postEmailautomsave(Request $request){ 
... 
} 

aber es leitet an localhost/app/mymail um? und gib mir diesen Fehler:

NotFoundHttpException in Controller.php line 93: 
Controller method not found. 

klingt das komisch an meinem Ende. kann jemand eine Idee dazu haben? Ich bin sicher, dass ich das Recht, diese speziell auf meine routes.php

Route::group([ 'prefix' => 'app', 'middleware' => 'auth' ], function() { 
.... 
Route::controller('esetting', 'SettingController'); 
Route::get('esetting/mymail', '[email protected]'); // view for the form to display 
.... 
+0

nicht sicher, ob das nur ein Tippfehler, aber Ihr Schliessform Tag ist falsch. – Moritur

+0

Auch Ihre URL ist/setting/... aber Sie verwenden Route :: controller ('setting', ...) – Moritur

+0

haben Sie Ihre Auth Middleware überprüft? –

Antwort

1

Einfach nur definieren getan haben:

Route::post('esetting/mymail/emailautomsave', '[email protected]'); 

Ich weiß, dass Sie sagen: „Ich habe Strecke :: Controller definiert, so es wird automatisch danach suchen. "

Aber für mich ist es am besten, Routen genau definiert zu haben.

auch wenn:

it redirects to localhost/app/mymail? and give me this error:

NotFoundHttpException in Controller.php line 93: Controller method not found.

vielleicht bedeutet es, dass einige Middleware You wird Umleitung?

Sie können es einfach dies zu tun:

public function postEmailautomsave(Request $request){ 
    die('test'); 
    ... 
} 

wenn es umleitet, so bedeutet es, dass einige Funktion vor und Browser aufgerufen wurde app/mymail umleiten.

0

Wenn Sie den Route :: Controller verwenden, müssen Sie Ihre Methoden entsprechend der Route definieren. Zum Beispiel

Route::controller('esetting', 'SettingController'); 

Wird für aussehen SettingController @ getIndex, wenn Sie besuchen http :: //yoursite.com/esetting

SettingController erreichen @ postEmailAutomsave() Sie auf die Route http gehen müssten :: //yoursite.com/esetting/emmail/automsave

Ich habe Route :: controller selbst nicht benutzt, ich habe mich auch daran gewöhnt (und bevorzuge jetzt), sie einzeln zu benennen. Aber das sollte den Trick tun.

Laravel 5.1 docs