> ## 設置驗證規則
```
// 1.數組傳入(針對在控制器中定義驗證)
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
$validate = new Validate($rules);
// 2.動態追加(定義了驗證器的情況下,控制器需要單獨驗證某個字段,可以追加)
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
$validate = new Validate($rules);
$validate->rule('zip', '/^\d{6}$/');
$validate->rule([
'email' => 'email',
]);
```
> ## 規則定義格式(`數組格式和字符串格式可以混用`)
```
// 1.字符串形式,用 | 分隔
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
// 2.數組形式
$rules = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
];
```
> ## 閉包函數驗證
```
// 第一個參數是當前字段的值,第二個參數是全部數據
$validate = new \think\Validate([
'name' => function($value,$data) {
return 'thinkphp'==$value ? true : false;
},
]);
```
> ## 自定義驗證規則
```
// 1.驗證器類中的寫法
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'checkName:thinkphp',
];
protected $message = [
'name' => '用戶名必須',
];
// 自定義驗證規則
(第一個是被驗證的數據,第二個是驗證規則,第三個是所有的數據)
protected function checkName($value,$rule,$data)
{
return $rule == $value ? true : '名稱錯誤';
}
}
// 2.控制器中的寫法
$validate = new Validate(['name' => 'checkName:1']);
$validate->extend('checkName', function ($value, $rule) {
return $rule == $value ? true : '名稱錯誤';
});
$data = ['name' => 1];
$result = $validate->check($data);
// 支持批量注冊
$validate->extend([
'checkName'=> function ($value, $rule) {
return $rule == $value ? true : '名稱錯誤';
},
'checkStatus'=> [$this,'checkStatus']
]);
```
> ## 設置字段信息
```
// 驗證規則
$rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
// 設置字段信息
$field = [
'name' => '名稱',
'age' => '年齡',
'email' => '郵箱',
];
// 待驗證的數據
$data = [
'name' => 'thinkphp',
'age' => 10,
'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule, [] , $field);
$result = $validate->check($data);
```
- 運行環境需求
- tp5目錄結構
- 命令行生成代碼
- 路由
- 請求
- 獲取請求信息
- 超全局變量獲取
- 更改請求變量的值
- 判斷是否為某種請求類型
- 偽裝表單請求類型
- HTTP頭部信息
- 偽靜態
- 向請求對象中注入自定義的屬性和方法
- 簡單的傳參可以使用參數綁定
- 依賴注入(將對象注入方法作為參數)
- 將請求的數據進行緩存
- 控制器
- 一個控制器代碼示例
- 空控制器
- 資源控制器
- 模型
- 一個模型代碼示例
- 模型的四種調用方法
- 控制器中調用模型添加數據
- 控制器中調用模型更新數據
- 控制器中調用模型刪除數據
- 控制器中調用模型查詢數據
- 模型中使用聚合函數
- 獲取器
- 修改器
- 自動寫入時間戳
- 只讀字段
- 軟刪除
- 自動類型轉換
- 數據自動完成
- 查詢范圍
- 數組方式訪問和轉換為數組
- json序列化
- 模型的事件
- 關聯模型
- 一對一關聯
- 一對多關聯
- 遠程一對多(跨表關聯)
- 多對多關聯
- 多態關聯
- 關聯預載入N+1次查詢變2次
- 延遲預載入
- 關聯統計
- 視圖與模板
- 模板引擎配置
- 分配數據到模板
- 輸出替換
- 模板中輸出變量
- 模板中輸出系統變量(配置常量超全局)
- 模板中輸出請求信息
- 模板中使用php函數
- 輸出到模板中的變量指定默認值
- 模板中進行運算
- 原樣輸出代碼不解析
- 模版中注釋
- 模板布局與繼承
- 文件包含
- 內置標簽
- 循環輸出標簽
- 比較標簽
- 條件判斷標簽
- 引入資源文件(js-css)
- 使用原生php
- 在模板中定義變量和常量
- 助手函數
- 常用功能
- 表單驗證
- 驗證器的定義
- 自定義驗證規則
- 速查表
- 系統默認根命名空間
- 系統路徑常量
- 請求變量
- URL請求和信息方法