🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
一、包含文件 {include file="public/header" /} // 包含头部模版header {include file="public/menu" /} // 包含菜单模版menu {include file="blue/public/menu" /} // 包含blue主题下面的menu模版 二、可以一次包含多个模版,例如: {include file="public/header,public/menu" /} 三、可以直接包含一个模版文件名(包含完整路径),例如: {include file="../application/view/default/public/header.html" /} 四、调试执行的SQL语句 User::get(1); echo User::getLastSql(); 输出结果是 SELECT * FROM 'think_user' WHERE 'id' = '1' 也可以使用fetchSql方法直接返回当前的查询SQL而不执行,例如: echo User::fetchSql()->find(1); 五、监听SQL Db::listen(function($sql,$time,$explain){ // 记录SQL echo $sql. ' ['.$time.'s]'; // 查看性能分析结果 dump($explain); }); 注:默认如果没有注册任何监听操作的话,这些SQL执行会被根据不同的日志类型记录到日志中。 六、模型数据验证 $User = new User; $result = $User->validate( [ 'name' => 'require|max:25', 'email' => 'email', ], [ 'name.require' => '名称必须', 'name.max' => '名称最多不能超过25个字符', 'email' => '邮箱格式错误', ] )->save($data); if(false === $result){ // 验证失败 输出错误信息 dump($User->getError()); } 注:第二个参数如果不传的话,则采用默认的错误提示信息。 如果使用下面的验证器类的话: namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => 'require|max:25', 'email' => 'email', ]; protected $message = [ 'name.require' => '用户名必须', 'email' => '邮箱格式错误', ]; protected $scene = [ 'add' => ['name','email'], 'edit' => ['email'], ]; } 模型验证代码可以简化为: $User = new User; // 调用当前模型对应的User验证器类进行数据验证 $result = $User->validate(true)->save($data); if(false === $result){ // 验证失败 输出错误信息 dump($User->getError()); } 如果需要调用的验证器类和当前的模型名称不一致,则可以使用: $User = new User; // 调用Member验证器类进行数据验证 $result = $User->validate('Member')->save($data); if(false === $result){ // 验证失败 输出错误信息 dump($User->getError()); } 同样也可以支持场景验证: $User = new User; // 调用Member验证器类进行数据验证 $result = $User->validate('Member.edit')->save($data); if(false === $result){ // 验证失败 输出错误信息 dump($User->getError()); } 六、加载外部文件用 import(' 类文件名称','类文件所在的路径'); 例:import('Auth',EXTEND_PATH.DS.'Auth');在tp的扩展文件夹下的Auth文件夹下