【问题标题】:How to use configuration variables on validation rules in elequent model?如何在 eloquent 模型的验证规则上使用配置变量?
【发布时间】:2019-05-28 07:42:41
【问题描述】:
如何在验证规则中使用配置变量?
这是我的 model.php
public static $rules = [
'transaction_limit_per_day' => 'required|numeric|max:'.config('agripoints.cropAgentTransactionLimit')
];
【问题讨论】:
标签:
laravel
eloquent
laravel-validation
【解决方案1】:
您可以在 laravel 验证规则中使用双引号来使用任何变量,就像在普通双引号字符串中一样。
$transaction_limit = config('agripoints.cropAgentTransactionLimit');
public static $rules = [
'transaction_limit_per_day' => "required|numeric|max:$transaction_limit"
];
【解决方案2】:
这是一些与 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
希望对您有所帮助。编码愉快。