thinkphp5验证器scene没有触发rule的require

验证器:

<?php

namespace app\common\validate;

class Admin extends Base
{
    /**
     * 验证规则
     */
    protected $rule = [
        'username' => 'require|regex:\w{3,12}|unique:admin',
        'password' => 'require|regex:\S{32}',
        'nickname' => 'require',
        'email' => 'require|email|unique:admin,email',
    ];

    /**
     * 验证场景
     */
    protected $scene = [
        'add' => ['username' , 'nickname', 'password'],
    ];
}

使用:

 $this->model->validate('Admin.add')->save($params);

1.当 $params 为null时,依旧可以通过验证器
2.当 $params['username' => 'qqqqqqqqqqq']时,依旧可以通过验证器
3.当 $params['username' => '']时,提示username验证失败

我要的效果是:

['username' , 'nickname', 'password'] 都按 $rule 的规则来, 有 require 的是必填

请问应该怎么修改?

阅读 105
评论 更新于 1月17日
    撰写回答

    登录后参与交流、获取后续更新提醒