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' => 'thinkphp@qq.com',
]);
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