是否可以在自定义规则中使用现有的Laravel验证规则?
示例: 0123
0 OOOO
1 OOOO
2 OOOO
3 OOOX <--- mouse click here
我只想将这些规则归为一个规则required|string|max:100
。
通过这种方式
custom_rule_name
或
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
return $value == 'required|string|max:100';//something like this
});
让我知道是否有可能?
谢谢
Kaleem
答案 0 :(得分:0)
不,正确的方法是在验证请求时选择每个规则,而不是创建一个包含所有逻辑的规则。
答案 1 :(得分:0)
您可以在Validator
函数内使用passes()
门面。像这样:
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Support\Facades\Validator;
class Uppercase implements Rule
{
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$validator = Validator::make([$attribute => $value], [
$attribute => 'required|string|max:100',
]);
return !$validator->fails();
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The :attribute must be uppercase.';
}
}