Routage des ressources (CURD)



Routage des ressources

Routage des ressources, qui peut générer rapidement un lot de routes, particulièrement adapté aux opérations CURD

Prend en charge la définition du routage des ressources pour les requêtes RESTFul, comme suit :

Route::resource('blog', 'Blog');

signifie enregistrer un blog nommé Lorsque les ressources sont acheminées vers le contrôleur Blog, le système enregistrera automatiquement 7 règles de routage, comme suit :


indexcreate
IdentificationType de demandeGénérer des règles de routageMéthode de fonctionnement correspondante (par défaut)
indexGETblogblogindex
createGETblog/createcreate
savePOSTblogsave
readGETblog/:idread
editGETblog/:id/editedit
updatePUTblog/:idupdate
deleteDELETEblog/:id

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🎜🎜🎜🎜🎜🎜🎜🎜Le contrôleur spécifique pointé est déterminé par l'adresse de routage. Il vous suffit de créer la méthode de fonctionnement correspondante ci-dessus pour que le contrôleur Blog prenne en charge ce qui suit. Accès URL : 🎜
http://serverName/blog/
http://serverName/blog/128
http://serverName/blog/28/edit
🎜Les méthodes correspondantes dans le contrôleur Blog sont les suivantes : 🎜
<?php
namespace app\controller;

class Blog
{
    public function index()
    {
    }

    public function read($id)
    {
    }

    public function edit($id)
    {
    }
}
🎜Vous pouvez créer rapidement une classe de contrôleur de ressources via la ligne de commande (reportez-vous plus tard à la section sur le contrôleur de ressources du chapitre sur le contrôleur). 🎜🎜Vous pouvez modifier le nom du paramètre id par défaut, par exemple : 🎜
Route::resource('blog', 'Blog')
    ->vars(['blog' => 'blog_id']);
🎜La définition de la méthode du contrôleur doit être ajustée comme suit : 🎜
<?php
namespace app\controller;

class Blog
{
    public function index()
    {
    }

    public function read($blog_id)
    {
    }

    public function edit($blog_id)
    {
    }
}
🎜Vous pouvez également limiter la méthode d'exécution (identité) lors de la définition du routage des ressources, par exemple : 🎜
// 只允许index read edit update 四个操作
Route::resource('blog', 'Blog')
    ->only(['index', 'read', 'edit', 'update']);
    
// 排除index和delete操作
Route::resource('blog', 'Blog')
    ->except(['index', 'delete']);
🎜Routage des ressources L'identifiant ne peut pas être modifié, mais les règles de routage générées et les méthodes de fonctionnement correspondantes peuvent être modifiées. 🎜🎜Si vous devez modifier l'opération correspondante d'un identifiant de routage de ressource, vous pouvez utiliser la méthode suivante : 🎜
Route::rest('create',['GET', '/add','add']);
🎜Après réglage, l'URL d'accès devient : 🎜
http://serverName/blog/create
变成
http://serverName/blog/add
🎜La méthode d'opération correspondante de création d'une page de blog devient également ajouter. 🎜🎜Prend en charge les modifications par lots, comme suit : 🎜
Route::rest([
    'save'   => ['POST', '', 'store'],
    'update' => ['PUT', '/:id', 'save'],
    'delete' => ['DELETE', '/:id', 'destory'],
]);
🎜🎜Imbrication de ressources🎜🎜🎜🎜Prend en charge l'imbrication des itinéraires de ressources, par exemple : 🎜
Route::resource('blog', 'Blog');
Route::resource('blog.comment','Comment');
🎜Vous pouvez accéder à l'adresse suivante : 🎜
http://serverName/blog/128/comment/32
http://serverName/blog/128/comment/32/edit
🎜Les règles de routage générées sont : 🎜
blog/:blog_id/comment/:id
blog/:blog_id/comment/:id/edit
🎜 Les méthodes de fonctionnement correspondantes du contrôleur Comment sont les suivantes : 🎜
<?php

namespace app\controller;

class Comment
{
    public function edit($id, $blog_id)
    {
    }
}
🎜L'ordre des paramètres dans la méthode d'édition peut être arbitraire, mais les noms des paramètres doivent répondre aux exigences de définition. 🎜🎜Si vous devez changer le nom de la variable, vous pouvez utiliser : 🎜
// 更改嵌套资源路由的blog资源的资源变量名为blogId
Route::resource('blog.comment', 'index/comment')
    ->vars(['blog' => 'blogId']);
🎜La méthode de fonctionnement correspondante du contrôleur de commentaires est modifiée en : 🎜
<?php
namespace app\controller;

class Comment
{
    public function edit($id, $blogId)
    {
    }
}
🎜🎜🎜🎜 🎜