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:


标识请求类型生成路由规则对应操作方法(默认)
indexGETblogindex
createGETblog/createcreate
savePOSTblogsave
readGETblog/:idread
editGETblog/:id/editedit
updatePUTblog/:idupdate
deleteDELETEblog/:iddelete


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 e

generierten 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']);