# RESTful 路由
REST(Representational State Transfer表述性狀態轉移)是一種針對網絡應用的設計和開發方式,可以降低開發的復雜性,提高系統的可伸縮性。REST提出了一些設計概念和準則:
1. 網絡上的所有事物都被抽象為資源(resource);
2. 每個資源對應一個唯一的資源標識(resource identifier);
3. 通過通用的連接器接口(generic connector interface)對資源進行操作;
4. 對資源的各種操作不會改變資源標識;
5. 所有的操作都是無狀態的(stateless)
資源控制器可讓你無痛建立和資源相關的 RESTful 控制器。例如,你可能希望創建一個控制器,它可用來處理針對你的應用程序所保存相片的 HTTP 請求。
[TOC]
## 使用
#### 創建資源控制器
```
php hd make:controller home.photo resource
```
#### 設置路由規則
我們注冊一個指向此控制器的資源路由:
```
Route::resource('photo', 'home/photo');
```
此單一路由聲明創建了多個路由,用來處理各式各樣和相片資源相關的 RESTful 行為。同樣地,產生的控制器已有各種和這些行為綁定的方法,包含用來通知你它們處理了那些 URI 及動詞。
## 說明
#### 路由說明
由資源控制器處理的行為
```
動詞 路徑 行為
GET /photo 索引
GET /photo/create 創建
POST /photo 保存
GET /photo/{photo} 顯示
GET /photo/{photo}/edit 編輯
PUT /photo/{photo} 更新
DELETE /photo/{photo} 刪除
```
#### 代碼
```
namespace app\home\controller;
class Photo{
//GET /photo 索引
public function index(){
echo 'index';
}
//GET /photo/create 創建界面
public function create(){
echo 'create';
}
//POST /photo 保存新增數據
public function store(){
echo 'store';
}
//GET /photo/{photo} 顯示文章
public function show($id){
echo 'show';
}
//GET /photo/{photo}/edit 更新界面
public function edit($id){
echo 'edit';
}
//PUT /photo/{photo} 更新數據
public function update($id){
echo 'update';
}
//DELETE /photo/{photo} 刪除
public function destroy($id){
echo 'destroy';
}
}
```
#### 偽造方法
由于HTML表單不能發起PUT、PATCH和DELETE請求,需要添加一個隱藏的 _method 字段來偽造HTTP請求方式,輔助函數 method_field 可以幫我們做這件事:
```
{{ method_field('PUT') }}
```
系統會生成表單
```
<input type="hidden" name="_method" value="PUT"/>
```
- 文檔已經遷移到后盾人
- 介紹
- 框架特性
- 開發規范
- 許可協議
- 作者向軍
- 安裝框架
- 更新框架
- 基礎
- 入口文件
- 應用配置
- 優雅鏈接
- 目錄結構
- 系統常量
- 自動加載
- 應用密鑰
- 系統函數
- CSRF保護
- 依賴注入
- 跨域訪問
- 配置
- 配置文件
- 基本功能
- 擴展配置
- c 函數
- 控制器
- 定義聲明
- 基本使用
- 相關函數
- 響應消息
- 路由
- 基礎知識
- 基礎路由
- 路由參數
- 參數檢測
- 依賴注入
- 控制器
- 分組路由
- RESTful
- 別名路由
- 數據
- 配置相關
- 核心操作
- 查詢構造器
- 日志記錄
- 分頁處理
- 事務處理
- 函數相關
- 數據庫
- 數據遷移
- 數據填充
- 模型
- 定義模型
- 模型動作
- 模型驗證
- 自動完成
- 自動過濾
- 字段保護
- 數據填充
- 多表關聯
- 分頁處理
- 倉庫
- 數據倉庫
- 查詢規則
- 視圖
- 基礎知識
- 模板配置
- 模板文件
- 分配數據
- 系統標簽
- 擴展標簽
- 緩存模板
- 模板繼承
- 視圖函數
- widget
- vue組件
- 中間件
- 中間件
- 緩存
- 基本操作
- 文件緩存
- 數據表緩存
- 服務
- 服務容器
- 定制服務
- 相關函數
- 請求
- 基本使用
- 請求擴展
- 測試
- 基礎知識
- 基本使用
- HTTP測試
- 調試
- 調試模式
- 日志管理
- 組件
- 多語言
- 響應處理
- Cookie
- Session
- 驗證碼
- XML
- 自動驗證
- 文件處理
- 壓縮解壓
- RBAC
- 數組增強
- 分頁管理
- 圖像處理
- 生成靜態
- 加密解密
- 字符串
- 數據集合
- 工具服務
- 目錄操作
- 郵件發送
- CURL
- QQ登錄
- 數據備份
- 購物車
- 日志處理
- 命令組件
- 二維碼
- 后盾云
- 日期處理
- 阿里
- 支付寶
- 阿里云直播
- 阿里云短信
- 阿里云郵件
- 阿里云OSS
- SOCKET
- 啟動與關閉
- 前端
- 微信