我一直在使用以下验证我的表单在Laravel:
public function isValid($data, $rules)
{
$validation = Validator::make($data, $rules);
if($validation->passes()){
return true;
}
$this->messages = $validation->messages();
return false;
}
传递给它的规则很简单:
$rules = [
'name' => 'required',
'type' => 'required'
];
, $data
为输入后数据。现在我需要为此添加一个自定义验证扩展,特别是要确保输入字段round2
的值大于输入字段round1
的值。查看文档,我尝试了以下语法,我认为应该是正确的,但我一直得到一个错误。
$validation->extend('manual_capture', function($attribute, $value, $parameters)
{
return $value > $parameters[0];
});
那么我可以用$attribute = 'round1'
, $value = $data['round1']
和$parameters = [$data['round2']]
来调用它。
错误是Method [extend] does not exist.
-我不确定我对整个概念的理解是否正确,所以有人能告诉我如何使它工作吗?文档只有两段关于这个
将以下内容放入route.php
Validator::extend('manual_capture', function($attribute, $value, $parameters)
{
return $value > $parameters[0];
});
附加文档在这里
然后像这样使用:
$rules = [ 'foo' => 'manual_capture:30'];