12月7日 补充数据库链式操作,只生成sql语句,不执行sql的几种函数以及thinkphp中验证器

补充知识:

        生成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文件中开启

验证

验证器

        两种情况

                在功能模块中独立验证              创建validate验证器

       $data = input(); 由input获取,那么则可以在地址栏进行传递验证器需要的验证规则,只有姓名是必须的,那么只需要传递姓名即可,其他是可选

 验证器在某些场景下是不需要执行的,所以就有了验证场景这一限制

<?php
namespace app\index\validate;

use think\Validate;

class User extends Validate
{
    /*
     * 验证规则
     * */
    protected $rule = [
        'name'  => '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。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值