Laravel-4: Unterschied zwischen RESTful-Controller und Ressource Controller in Laravel
Kann mir jemand bitte erklären, was ist der Unterschied zwischen RESTful-Controller und Ressource Controller in Laravel ? Ich habe auch einige Fragen-
Wann sollte ich verwenden RESTful-Controller und bei der Ressourcen-Controller?
-
Gibt es eine Namenskonvention, die Von Controller-Aktion für RESTful-Controller und Ressource Controller ?
-
Wenn ich mit RESTful-Controller, wie könnte ich definieren, die route für unsere controller ?
-
Für Gebäude-API, die Controller-Methode ist die beste ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laravel Ressource Controller sind definiert als
Route::controller('users', 'UserController');
während Restful-Controller sind definiert alsRoute::resource('photo', 'PhotoController');
.Einen restful controller folgt der standard-bauplan für einen erholsamen Ressource, die hauptsächlich besteht aus:
Während der Ressource controller nicht rechthaberisch wie der restful-controller. Es ermöglicht Ihnen das erstellen von Methoden, die direkt von Ihnen-controller und es wird alles automatisch zugeordnet Routen:
Wird automatisch die Routen wie
Route::post('/profile', 'Controller@postProfile');
ohne explizite Festlegung auf die Routen, viel mehr von einem Helfer, wenn Sie zu vermeiden, sehr lange Strecke-Dateien.Tun
php artisan routes
wird Ihnen zeigen, mit all Ihren Routen an. Sie können testen, Sachen aus und verwenden Sie diesen Befehl, um zu sehen, was Routen wird automatisch generiert.Es sind unterschiedliche Konzepte. In laravel, eine Ressource-controller definiert, die Standard-Routen für eine bestimmte benannte Ressource zu Folgen REST-Prinzipien.
So, wenn eine Ressource definieren Sie in Ihrem routes.php wie:
Das einzige, was Laravel macht zu definieren, die für Sie diese Routen:
Und erwartet, dass Sie definieren diese Methoden auf Ihrem controller. Sie können auch verwenden, nur/außer-Klauseln zu entfernen Sie nicht mehr benötigte Routen:
Mehr dazu auf Laravel Dokumentation.
Route::resource('user', 'UserController', array('except' => array('destroy')));
Es ist nur eine Unterscheidung über die routing-Erklärung. Anstelle der Verwendung einer von denen, manuell definieren, die alle Ihre Routen.
Macht es die Routen-Datei MAßGEBEND, leicht zu verstehen, und weniger buggy.
php artisan routes
was sehen Sie? Ist es überhaupt möglich, dass diese seltsamen Regeln könnte zu unvorhersehbarem Verhalten führen? Für mich, ich brauche, um zu wissen, dass ich die strikte Kontrolle darüber, was weitergeleitet. Ich persönlich glaube nicht, dass der Controller immer auslösen nicht gefunden Ausnahme, das ist für den router, in meinem Kopf.Die Dokumentation zeigt derzeit RESTful und Ressourcen-Controller der sich auf das gleiche beziehen.
Es definiert die Routen für die folgenden http-request Verben zugeordnet URI, controller-action und route. Dies ermöglicht Ihnen, nutzen Sie das vordefinierte route-Namen eine Verbindung zu vordefinierten controller-Aktionen und anzeigen resource_id zu {resource} wie gezeigt.
Den Begriff Implizite Controller zu sein scheint, den Begriff zu spezifizieren, die Verwendung von
welche auf Magische Weise zu verbinden alle Routen zu ResourceController so, dass der http-Anfrage verb (get/post) ist das Präfix in den Namen der Funktion in den controller. Diese Karten jede URI, um die controller-Aktion (Funktion) mit (get/put) vor, aber nicht anzeigen resource_id zu {resource} oder route-Namen.
Karten zu
Es ist bis zu Sie zu entscheiden, welche Methode zu verwenden, wenn alle für das routing. Es gibt einige Diskussionen darüber, was nützlich ist und wenn routing lohnt sich sogar die Verwirrung, die Sie verursachen können.
Erholsamen Ressource Controller
Ressource Controller machen es einfacher zu bauen, RESTful Controller um Ressourcen. Zum Beispiel, möchten Sie vielleicht, einen Domänencontroller zu erstellen, die es schafft "Fotos" gespeichert, die von Ihrer Anwendung. Über den controller: - make-Befehl, über den Handwerker-CLI und die Route::Ressource-Methode können wir schnell erstellen wie ein controller.
Zu schaffen, die Steuerung über die Kommandozeile, folgenden Befehl ausführen:
Nun können wir registrieren ein findiger route zum controller:
Diese single-route-Erklärung erstellt mehrere Routen zu behandeln eine Vielzahl von RESTful-Aktionen auf das Foto Ressource. Ebenso werden die erzeugten controller-bereits gekürzte Methoden für jede dieser Aktionen mit Notizen, die Sie darüber informiert, welche URIs und Verben, die Sie handhaben.
Aktionen Behandelt, Die Durch Ressourcen-Controller
http://laravel.com/docs/5.0/controllers#restful-resource-controllers