【问题标题】: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
      

      希望对您有所帮助。编码愉快。

      【讨论】:

        猜你喜欢
        • 2015-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多