MethodNotAllowedHttpException laravel-4
Form :
{{ Form::open(array('url' => 'user/create', 'files' => true)) }}
Route :
Route::resource('user', 'UserController');
UserController.php
class UserController extends BaseController {
public function index()
{
return 'hi11';
//return View::make('home.index');
}
public function create()
{
return 'hi22';
//return View::make('home.index');
}
}
Dieser code gibt
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
- warum wollen Sie verwenden create-Methode? Ressource controller gemeint wurde, um zu erleichtern Ihre Aufgabe, durch die Festlegung gemeinsamer Quark Funktionen.
- Diese Methode, die ich verwenden möchten, legen Sie Benutzer in der Datenbank.
- für die, die nur Speicher-Methode wird erstellt, indem resource controller
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich möchte nur hinzufügen meine eigene Entdeckung in dieser Richtung... Vielleicht spart jemand anderes den Kopf-kratzen habe ich gerade durchgeführt.
Ich auch umgesetzt die Route::resource-Mechanismus. Ich konnte nicht herausfinden, warum mein schaffen war arbeiten, aber mein update war es nicht. Es stellt sich heraus können Sie nicht die Wiederverwendung der gleichen form-code genau die form, die macht ein update muss über die Methode PUT oder PATCH. Warum aktualisieren Sie nicht ein POST über mir.
Das heißt, die öffnung form-tag für ein update muss wie folgt Aussehen:
Ohne Angabe von method => SETZEN, bekommen Sie diese nicht-hilfreich-Fehler.
Weil in Ihrem roures, die Sie verwenden resourse-controller verwenden, können Sie nur bestimmte Pfade und Maßnahmen, beschrieben in der Dokumentation http://laravel.com/docs/controllers#resource-controllers.
user/erstellen ( UserController::create ) ist, wo Sie brauchen, um zu zeigen, das Formular für neue Benutzer hinzuzufügen.
Die eigentliche Speicherung der Benutzer sollte in Benutzer/speichern, d.h. Ihre form muss Daten senden, um UserController::store () - Methode.
In Ihrem Fall, wenn Sie Ihr Formular nur um 'url' => 'user', dies sollte automatisch senden von Daten an die richtige Methode.
Laravel 4 Ressourcen benannt haben-Routen - verwenden Sie einfach diese:
dies ist, wie ich es mache, es könnte jemand helfen, kann verbessert werden, aber dies wäre die wichtigste Idee.