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 :
Identification | Type de demande | Générer des règles de routage | Méthode de fonctionnement correspondante (par défaut) |
---|---|---|---|
index | GET | blog 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 | index
GET
blog/create
createsavePOST
blog
savereadGETblog/:id
read
edit
GET
blog/ :id/edit
edit
update
PUT
blog/ :id
update
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) { } }🎜🎜🎜🎜 🎜