Thinkphp6.0/TP6框架中新增函式的解釋及用法
阿新 • • 發佈:2020-12-30
1、dd():列印並截斷。halt()同效果。dump()
2、使用Arr::collapse($array),這種方法可以將Collection資料集轉化為陣列。類似於在鏈式寫法中的toArray
3、config()函式:列印後是全部配置函式,將根目錄下的config檔案全部收集起來了
4、hidden()函式可以對某個欄位隱藏輸出:
$Db->hidden(['name']);
5、模型中判斷資料集:用isEmpty(),不能用空。
if($users->isEmpty()){
echo '資料集為空';
}
6、新增資料後如果需要返回新增資料的自增主鍵,可以使用insertGetId方法新增資料並返回主鍵值:
$userId = Db::name('user')->insertGetId($data);
7、 // edit 驗證場景定義
public function sceneEdit()
{
return $this->only(['name','age'])
->append('name', 'min:5')
->remove('age', 'between')
->append('age', 'require|max:100');
}
主要方法說明如下:
方法名 描述
only 場景需要驗證的欄位
remove 移除場景中的欄位的部分驗證規則
append 給場景中的欄位需要追加驗證規則
如果對同一個欄位進行多次規則補充(包括移除和追加),必須使用下面的方式:
remove('field', ['rule1','rule2'])
// 或者
remove('field', 'rule1|rule2')
8、批量驗證:batch(true)
預設情況下,一旦有某個資料的驗證規則不符合,就會停止後續資料及規則的驗證,如果希望批量進行驗證,可以設定:
<?php namespace app\controller; use app\validate\User; use think\exception\ValidateException; class Index { public function index() { try { $result = validate(User::class)->batch(true)->check([ 'name' => 'thinkphp', 'email' => '[email protected]', ]); if (true !== $result) { // 驗證失敗 輸出錯誤資訊 dump($result); } } catch (ValidateException $e) { // 驗證失敗 輸出錯誤資訊 dump($e->getError()); } } }
9、中介軟體註冊方式:
路由新增:
Route::post('getMenuTreeList','Menu/getMenuTreeList')
->middleware(app\middleware\Check::class);
控制器新增(注意:此情況 對該類下所有方法適用):
protected $middleware = [\app\middleware\Check::class];
又此種情況 跟 路由新增一樣(下列情況表示,check中介軟體僅對getMenuTreeList方法生效):
protected $middleware = [
\app\middleware\Check::class => ['only' => ['getMenuTreeList'] ]
];
註冊中介軟體:
php think make:middleware Check