昨天設定修改資料表以符合需求,接下來要設定權限部分,打算分兩種會員 管理員與一般會員。
權限 | 說明 |
---|---|
管理員 | 可以做所有的新增刪除修改 |
一般會員 | 可以新增動物而已,並且只能修改自己新增的動物。無法新增刪除修改分類 |
新建一個原則 policy
php artisan make:policy AnimalPolicy -m Animal

網頁架設 | 學習筆記 | 生活分享 | 人生規劃
類別 type,預計紀錄該系統的動物分類 (貓、狗、其他…)
定義一個資源需要有哪些詳細資料。
欄位名 | 說明 | 格式 | 備註 |
---|---|---|---|
id | 分類id | int(10) unsigned | |
name | 類別名稱 | varchar(50) | |
sort | 排序 | int(10) | |
created_at | 新建時間 | timestamp NULL | |
updated_at | 更新時間 | timestamp NULL |
C:\project\animal\ > php artisan make:model Type -rmc
來到 api.php
把路由指定到 TypeController
Route::apiResource('types', 'TypeController');
新增(C) 查詢(R) 修改(U) 刪除(D) 都完成了!
但應該會發現一件事情,再新增以及修改的形況下,會有一點錯誤!
可以先嘗試看看
POST /api/animal
Headers 一樣給 json 格式回傳,但Body 裡面不要給任何值!
應該會出現錯誤!表示後端程式想要嘗試寫入不符合規定的值到資料表中!
所以需要做後端的表單檢查,Laravel 有一套驗證系統,設定的規則可以看官網文件。
AnimalController
中的 store
方法裡一開頭加入
public function store(Request $request) { $this->validate($request, [ 'type_id' => 'required', 'name' => 'required|max:255', 'birthday' => 'required|date', 'area' => 'required|max:255', 'fix' => 'required|boolean', 'description' => 'nullable', 'personality' => 'nullable' ]); //其他原本的程式略過 }
規格變數 | 說明 |
---|---|
required | 必填欄位 |
nullable | 非必填欄位 |
max:255 | 最大255值 |
date | 檢查是否為日期格式,利用 PHP strtotime 函數檢查字段 |
boolean | 只能輸入 true false 1 0 “1” “0” |
其他請參考
https://laravel.com/docs/5.8/validation#available-validation-rules
我查了三個賣書的平台,搜尋條件如下
參數 | 值 |
---|---|
關鍵字 | ux |
分類 | 中文書 |
價格 | 20 ~ 500 |
排列順序 | 精準度 |