gpt4 book ai didi

Laravel 自定义验证规则引用其他请求参数

转载 作者:行者123 更新时间:2023-12-04 00:23:55 26 4
gpt4 key购买 nike

我正在尝试创建一个接受参数的自定义验证规则,但此参数是请求中另一个字段的名称,例如 required_with规则。

我可以轻松处理规则中的给定参数,但我正在努力找出如何检索其他字段值。

目前我正在创建我的规则类

class MyClassRule
{
public function validate($attribute, $value, $parameters, $validator) : bool
{
// do some stuff here to return true/false
}
}

并在我的服务提供商中注册它
Validator::extend('my_rule', 'path\to\MyClassRule@validate');

所以我可以在我的请求中使用它
public function rules()
{
return [
'field' => ['my_rule'],
];
}

我希望能够做的是
public function rules()
{
return [
'other_field' => [...],
'field' => ['my_rule:other_rule'],
];
}

并使用 other_field我的规则类中的值,但是 validate()$parameters值(value)只是 ['other_field'] .即包含另一个字段名称的数组,而不是它的值。

我怎样才能做到这一点?

最佳答案

工匠命令

php artisan make:rule ValidateOtherField

类 ValidateOtherField
class ValidateOtherField implements Rule
{
private $error = '';
public function passes($attribute, $value)
{
if(request()->has('field') && request()->get('field') === 'MyValueSuccess'){
if(is_string($value)){
return true;
} else {
$this->error = '- not valid field';
}
}
return false;
}
public function message()
{
return "Error :attribute {$this->error}";
}
}

规则
public function rules()
{
return [
'field' => ['string'], //Validate field
'other_field' => [new ValidateOtherField],
];
}

关于Laravel 自定义验证规则引用其他请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58486766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com