2016-02-05 1 views
1
public function rules() { 
     return [ 
      'num_of_devices' => 'integer' 
     ]; 
} 

Я хочу проверить целочисленное поле тогда и только тогда, когда поле введено. Но выше правило проверяет его на целое число, даже если поле пусто. Я использовал somtimes, но никакого результата. Но когда я var_dump($num_of_devices), это строка. Я использую Laravel 5.2. Я думаю, что он отлично работал в 5.1. Пожалуйста, помогите мне.Подтвердить только в том случае, если поле введено в Laravel 5.2

ответ

4

Добавить правило в массив, если ввод не пуст. Вы можете собрать все свои правила проверки в массив $ rules и затем вернуть массив.

if(!empty(Input::get('num_of_devices'))){ 
    $rules['num_of_devices'] = 'integer'; 
} 
+0

Почему все это, когда вы можете просто использовать 'nullable'? – kjdion84

+0

Закрыть, но нет сигары. Вопрос был о Laravel 5.2, а правило валидации с нулевым значением было введено в Laravel 5.3. – Timo

+0

Ahhhhhhh Я вижу. – kjdion84

1

Вы ищете правило проверки sometimes. Из документации:

... запустить проверку проверки с поля только, если это поле присутствует во входном массиве.

+0

Я использовал 'иногда', но не работал для меня. –

+0

Он работал (без 'иногда') в версии Laravel 5.1. Но после обновления до 5.2 он не ... –

+0

'' 'иногда' '' проверяет, существует ли ключ для входного массива, а не если значение пустое/0/null. – brnmonteiro

4

5.3 С версии вы можете использовать обнуляемым

public function rules() { 
     return [ 
      'num_of_devices' => 'nullable | integer' 
     ]; 
} 
+0

Мне просто нравится этот фреймворк. Каждый раз, когда я думаю о чем-то, есть решение для меня. Спасибо за это. –

+0

_Note_: правило проверки «nullable» доступно только с 'v5.3' – avn