如何在元素模型中的验证规则上使用配置变量?

时间:2019-01-01 05:08:20

标签: laravel eloquent laravel-validation

如何在验证规则中使用配置变量?
这是我的 model.php

public static $rules = [
        'transaction_limit_per_day' => 'required|numeric|max:'.config('agripoints.cropAgentTransactionLimit')
];

2 个答案:

答案 0 :(得分:0)

您可以使用双引号在laravel验证规则内使用任何变量,就像在普通双引号字符串中一样。

$transaction_limit = config('agripoints.cropAgentTransactionLimit');

public static $rules = [ 
       'transaction_limit_per_day' => "required|numeric|max:$transaction_limit" 
];

答案 1 :(得分:0)

这与Php http://php.net/manual/en/language.variables.scope.php有关。如果您将参考此文档,则说明您无法在我们的案例config('agripoints.cropAgentTransactionLimit')中用另一个变量初始化静态变量。

您可以用不同的方法来做。随时从以下解决方案中做出决定。

解决方案1:

public $rules;

public function __construct()
{
    $this->rules =  [
            'transaction_limit_per_day' => 'required|numeric|max:'.config('agripoints.cropAgentTransactionLimit')
        ];
}

之后,您可以像这样访问它:

$model = new User; // use your own model here.
$model->rules; // this will let you access rules

解决方案2:(我个人将使用这种方法)

public function rules()
    {
        return [
            'transaction_limit_per_day' => "required|numeric|max:".config('agripoints.cropAgentTransactionLimit'),
        ];
    }

之后,您可以像这样访问它:

$model = new User; // use your own model here.
$model->rules(); // this will let you access rules

希望有帮助。编码愉快。