生成sql语句但是不会执行sql语句
public function fetchSqlTest(){$result = Db::name('user')->fetchSql(true)->select();//dump($result);//使用正常select查询默认中select(true)改为false即可返回sql语句$result = Db::name('user')->select(false);//dump($result);//返回上一条查询语句$result = Db::name('user')->getLastSql();//dump($result);//buildSql构造子查询$result = Db::name('user')->buildSql();//dump($result);}
需要掌握的知识点
能够自己在不看官方文档的情况下写出日志初始化文件
Log::init(['type' = 'File','path' = APP_PATH.'logs/'
]);
需要在application目录下的config.php中开启
数据库调试在application目录下的database.php文件中开启
两种情况
$data = input(); 由input获取,那么则可以在地址栏进行传递验证器需要的验证规则,只有姓名是必须的,那么只需要传递姓名即可,其他是可选
验证器在某些场景下是不需要执行的,所以就有了验证场景这一限制
'require|max:25','age' => 'number|between:1,120','email' => 'email',];/*** 错误信息*/protected $msg = ['name.require' => '名称必须','name.max' => '名称最多不能超过25个字符','age.number' => '年龄必须是数字','age.between' => '年龄必须在1~120之间','email' => '邮箱格式错误',];/*** 验证场景*/protected $scene = ['add' => ['username'],'edit' => ['username', 'password', 'email', 'mobile'],];
}
通过验证器给出的场景,在功能中调用即可
//使用验证器验证public function validate2(){$data = input();$validate = Loader::validate('User');if(!$validate->scene('add')->check($data)){dump($validate->getError());}$this->success('验证成功','','',10);}
https://static.kancloud.cn/manual/thinkphp5/129356
这里的__token__跟session cookie中提到的token不一样
__token__:是为了验证用户是否从表单提交
token:Token 是一种令牌,它是一个随机生成的字符串,用于识别用户的身份。Token 通常被用作一次性令牌,用于防止跨站请求伪造 (CSRF) 攻击。在 PHP 中,可以使用函数 `uniqid()` 来生成一个唯一的 token。