Laravel自定义验证规则和参数

时间:2018-02-19 09:04:15

标签: laravel laravel-5.3 laravel-validation

我已在CustomRequest中编写此函数规则来检查在提供程序中定义的checkHackInputUser规则:

  

其实我想检查路线中传递的值

例如:

 http://www.somedomain.com/user/{id} 
  

我在这个$ id变量上做了什么操作   使用我的checkHackInputUser规则

这是CustomRequest:

public function rules()
{

$request_id = $this->route('user');
$rules = [];

if($this->method() == "DELETE" || $this->method() == "GET" )
    $rules = [
        'role_list'             => 'required|checkHackInputUser:'.$request_id,
    ];

return $rules;
}

问题是,如果我删除rule(checkHackInputUser)角色,则此required无效。

这是提供者中的checkHackInputUser验证函数:

public function boot()
{

    $this->app['validator']->extend('checkHackInputUser',function($attr,$value,$params){

            //Some validation

            return false or true;

});

}

1 个答案:

答案 0 :(得分:-1)

使用sometimes时,您可以conditionally validate输入。

  

在某些情况下,只有在输入数组中存在该字段时,您可能希望对字段运行验证检查。要快速完成此操作,请将有时规则添加到规则列表中:

     

$ v = Validator :: make($ data,[       'email'=> “有时候|需要|电子邮件”,   ]);