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 的是必填

请问应该怎么修改?

阅读 1.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题