Ressourcenrouting (CURD)
Ressourcenrouting
Ressourcenrouting, das schnell einen Stapel von Routen generieren kann. Besonders geeignet für CURD-Operationen
unterstützt das Festlegen des Ressourcenroutings für RESTFul-Anfragen wie folgt:
Route::resource('blog', 'Blog');
bedeutet die Registrierung einer Ressource mit dem Namen bl og-Ressourcen werden an den Blog-Controller weitergeleitet und das System registriert automatisch 7 Routing-Regeln wie folgt:
标识 | 请求类型 | 生成路由规则 | 对应操作方法(默认) |
---|---|---|---|
index | GET | blog | index |
create | GET | blog/create | create |
save | POST | blog | save |
read | GET | blog/:id | read |
edit | GET | blog/:id/edit | edit |
update | PUT | blog/:id | update |
delete | DELETE | blog/:id | delete |
Spezifisch Wegbeschreibungen Der Controller wird durch die Routing-Adresse bestimmt. Sie müssen lediglich die oben genannte entsprechende Betriebsmethode für den Blog-Controller erstellen, um den folgenden URL-Zugriff zu unterstützen:
http://serverName/blog/ http://serverName/blog/128 http://serverName/blog/28/edit
Die entsprechende Methode im Blog-Controller lautet wie folgt:
<?php namespace app\controller; class Blog { public function index() { } public function read($id) { } public function edit($id) { } }
Sie können schnell eine Ressourcen-Controller-Klasse über die Befehlszeile erstellen (siehe Abschnitt „Ressourcen-Controller“ im Kapitel „Controller“ weiter unten).
Sie können den Standard-ID-Parameternamen ändern, zum Beispiel:
Route::resource('blog', 'Blog') ->vars(['blog' => 'blog_id']);
Die Methodendefinition des Controllers muss wie folgt angepasst werden:
<?php namespace app\controller; class Blog { public function index() { } public function read($blog_id) { } public function edit($blog_id) { } }
kann auch eingeschränkt werden auf Ausführung beim Definieren der Ressourcen-Routing-Methode (Identität), zum Beispiel:
// 只允许index read edit update 四个操作 Route::resource('blog', 'Blog') ->only(['index', 'read', 'edit', 'update']); // 排除index和delete操作 Route::resource('blog', 'Blog') ->except(['index', 'delete']);
Die Identifikation des Ressourcen-Routings kann nicht geändert werden, aber die generierten Routing-Regeln und entsprechenden Betriebsmethoden können geändert werden.
Wenn Sie die entsprechende Operation einer Ressourcen-Routing-ID ändern müssen, können Sie die folgende Methode verwenden:
Route::rest('create',['GET', '/add','add']);
Nach der Einstellung wird der URL-Zugriff zu:
http://serverName/blog/create 变成 http://serverName/blog/add
Erstellen Die entsprechende Operation der Blog-Seite Die Operationsmethode wurde ebenfalls geändert, um hinzuzufügen.
Unterstützt Stapeländerungen wie folgt:
Route::rest([ 'save' => ['POST', '', 'store'], 'update' => ['PUT', '/:id', 'save'], 'delete' => ['DELETE', '/:id', 'destory'], ]);
Ressourcenverschachtelung
Unterstützt die Verschachtelung von Ressourcenrouten, zum Beispiel:
Route::resource('blog', 'Blog'); Route::resource('blog.comment','Comment');
Sie können die folgende Adresse besuchen:
rrree Die von egenerierten Routing-Regeln lauten:
http://serverName/blog/128/comment/32 http://serverName/blog/128/comment/32/edit
Die entsprechende Operationsmethode des Kommentar-Controllers lautet wie folgt:
blog/:blog_id/comment/:id blog/:blog_id/comment/:id/edit
Die Reihenfolge der Parameter in der Bearbeitungsmethode kann jedoch beliebig sein Die Parameternamen müssen den Definitionsanforderungen entsprechen.
Wenn Sie den Variablennamen ändern müssen, können Sie Folgendes verwenden:
<?php namespace app\controller; class Comment { public function edit($id, $blog_id) { } }
Die entsprechende Betriebsmethode des Kommentar-Controllers wird geändert in:
// 更改嵌套资源路由的blog资源的资源变量名为blogId Route::resource('blog.comment', 'index/comment') ->vars(['blog' => 'blogId']);