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