Пользовательские мульти атрибуты в проверке - PullRequest
0 голосов
/ 17 февраля 2019

Я использую проверку в Запросе Laravel.Я хотел бы обрабатывать атрибуты на основе разделения другого атрибута.Как это могло контролировать?

    public function rules()
    {
       return [
               'number' => 'required|numeric',
               'threshold' =>['numeric',
                  function ($attribute, $value, $fail) {
                   if ($attribute > 'number/2') { 
                      $fail(('threshold must be smaller than division of number'));
                        } 
                    }, ]
                ];
    }

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Просто добавив еще один способ сделать это, используя метод prepareForValidation, теперь доступный в Laravel:

В вашем Request классе:

<?php
/**
 * Modify the input values
 *
 * @return void
 */
protected function prepareForValidation(){

    $this->merge[
        'number_division_by_2' => $this->input('number') / 2
    ];
}

Тогда в ваших правилах то же самое Request класс, вы можете добавить:

<?php 

public function rules()
{
   return [
           'number' => 'required|numeric',
           'threshold' =>'numeric',
           'number_division_by_2' => 'lt:threshold'
}
0 голосов
/ 17 февраля 2019

Вы можете использовать функцию request() во всем приложении, поэтому в этом случае для доступа к определенному атрибуту вы можете использовать

$attribute_value = request()->YOUR_ATTRIBUTE;
...