gpt4 book ai didi

laravel - 如何在自定义验证规则的pass函数中发送多个参数

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

我正在实现一个自定义验证规则,它应该在自定义验证规则的 pass 函数中采用另一个带有属性和值的参数。由于我们在编写自定义验证时实现了 Rule 接口(interface),它不允许我们在 pass 函数中添加第三个参数,但我需要第三个参数。此外,如果有人能指导我将数据库纳入规则的最佳实践,我会感到很高兴。如果我们需要自定义验证规则中的表,我们应该只在规则中包含所需的模型,或者我们应该在验证规则中编写查询时使用 Illuminate\Support\Facades\DB。我想要以下格式的pass函数

public function passes($attribute, $value,$extraparam)
{
/*Code here*/
}

最佳答案

您可以将额外的参数作为参数传递给 Rule 的构造函数

use App\Rules\Uppercase;

$request->validate([
'name' => ['required', new Uppercase($param)],
]);

所以你可以修改你的规则类
namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class Uppercase implements Rule
{
protected $extraParam;

public function __construct($param)
{
$this->extraParam = $param;
}

public function passes($attribute, $value)
{
// Access the extra param as $this->extraParam
return strtoupper($value) === $value;
}
}

关于laravel - 如何在自定义验证规则的pass函数中发送多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272643/

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