【问题标题】:Laravel Rule Validation for Minimum and Maximum Salary [duplicate]最低和最高工资的 Laravel 规则验证 [重复]
【发布时间】:2018-01-15 10:26:07
【问题描述】:

我有以下规则。

  $rules['min_salary']  = 'required|not_in:0|numeric';
  $rules['max_salary']  = 'required|not_in:0|numeric';

如何有 min_salary 小于等于 max_salary 的规则。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    创建新规则

    php artisan make:rule SalaryRule
    

    将规则添加到您的验证中

    $rules['min_salary']  = ['required', 'not_in:0', 'numeric', new SalaryRule($request->max_salary)];
    $rules['max_salary']  = 'required|not_in:0|numeric';
    

    如果您使用的是FormRequest,您可以以$this->max_salary 的身份访问max_salary

    确保在代码中导入规则

    use App\Rules\SalaryRule;
    

    在规则的passes 方法中,您可以编写逻辑

    public function passes($attribute, $value)
    {
        return $value <= $this->max_salary;
    }
    

    并创建一个属性max_salary 并在规则的构造方法中初始化它,因为您在构造函数中传递max_salary

    protected $max_salary;
    
    public function __construct($max_salary)
    {
        $this->max_salary = $max_salary;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 2021-05-18
      • 2019-04-24
      • 2014-03-15
      • 2019-06-13
      • 2016-08-17
      相关资源
      最近更新 更多