第四章 laravel中的资源路由

本文详细介绍了如何使用RESTful风格设计和实现API,包括常见的HTTP方法与资源操作的对应关系,以及如何在Laravel框架中创建和配置资源路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.使用RESTful风格的路由

动作URI行为路由名称
GET/photosindexphotos.index
GET/photos/createcreatephotos.create
POST/photosstorephotos.store
GET/photos/{photo}showphotos.show
GET/photos/{photo}/editeditphotos.edit
PUT/PATCH/photos/{photo}updatephotos.update
DELETE/photos/{photo}destroyphotos.destroy

二.举例

下面是RESTful URI的一些例子:

GET /zoos:列出所有动物园
POST /zoos:新建一个动物园
GET /zoos/ID:获取某个指定动物园的信息
PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
DELETE /zoos/ID:删除某个动物园
GET /zoos/ID/animals:列出某个指定动物园的所有动物
DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

三.创建

  • 创建资源路由
php artisan make:controller PhotoController --resource
  • 给资源控制器注册一个资源路由
Route::resource('photos', 'PhotoController');
  • 声明用于 APIs 的资源路由 (排除显示 HTML 模板的路由(如 create 和 edit ))
Route::apiResource('photo', 'PhotoController');
  • 声明资源路由时,你可以指定控制器处理的部分行为,而不是所有默认的行为:
Route::resource('photo', 'PhotoController', ['only' => [
    'index', 'show'
]]);


Route::resource('photo', 'PhotoController', ['except' => [
    'create', 'store', 'update', 'destroy'
]]);

四.路由缓存

{note} 基于闭包的路由不能被缓存。如果要使用路由缓存,你必须将所有的闭包路由转换成控制器类路由。

如果你的应用只使用了基于控制器的路由,那么你应该充分利用 Laravel 的路由缓存。使用路由缓存将极大地减少注册所有应用路由所需的时间。某些情况下,路由注册的速度甚至可以快一百倍。要生成路由缓存,只需执行 Artisan 命令

route:cache
php artisan route:cache

运行这个命令之后,每一次请求的时候都将会加载缓存的路由文件。如果你添加了新的路由,你需要生成一个新的路由缓存。因此,你应该只在生产环境运行命令

route:cache

你可以使用route:clear命令清除路由缓存:

php artisan route:clear
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值