2016-05-20 3 views
4

Я использую функцию регистрации laravel для регистрации пользователя. Я добавил флажок, где пользователь должен принять условия. Я хочу, чтобы пользователь регистрировался, когда установлен флажок. Могу ли я использовать «обязательную» проверку в laravel? Это моя функция проверки:Проверка валидатора

return Validator::make($data, [ 
     'firstName' => 'required|max:255', 
     'lastName' => 'required|max:255', 
     'email' => 'required|email|max:255|unique:users', 
     'password' => 'required|confirmed|min:6', 
     'checkbox' =>'required', 
    ]); 

Когда я использую функцию, как это, Laravel дает требуемую ошибку для флажка, даже если это проверяется.

Это HTML флажка

<input type="checkbox" name="checkbox" id="option" value="{{old('option')}}"><label for="option"><span></span> <p>Ik ga akkoord met de <a href="#">algemene voorwaarden</a></p></label> 

Я надеюсь, что вы, ребята, можете мне помочь!

+0

Что ваша форма выглядеть? Вы проверяли фактические данные в инструментах dev? Вероятно, html неверен, поэтому данные не публикуются. Верхний совет - если вы используете современную среду IDE, установите xdebug и установите точку останова – Steve

+0

Это будет работать, просто убедитесь, что входное значение не будет пустой строкой или ложью. И 'checkbox' => 'required' - это нормально, если ключ является значением атрибута имени ввода. –

+0

Спасибо, человек! Можете ли вы опубликовать это как ответ? Таким образом, я могу принять его и переместить его –

ответ

4

Он будет работать, просто убедитесь, что входное значение не будет пустой строкой или ложным. И 'checkbox' => 'required' - это нормально, если ключ является значением атрибута имени ввода.

0

Ваших правил валидации должны corrolate с name атрибутами HTML полой формы:

return Validator::make($data, [ 
     'firstName' => 'required|max:255', 
     'lastName' => 'required|max:255', 
     'email' => 'required|email|max:255|unique:users', 
     'password' => 'required|confirmed|min:6', 
     'option' =>'required', //not checkbox 
    ]); 
+0

Извините, что я использовал флажок только для stackoverflow, чтобы очистить его. Имена на моем компьютере одинаковы. Я редактировал вопрос. –

7

Используйте accepted правила.

return Validator::make($data, [ 
    'firstName' => 'required|max:255', 
    'lastName' => 'required|max:255', 
    'email' => 'required|email|max:255|unique:users', 
    'password' => 'required|confirmed|min:6', 
    'option' =>'accepted' 
]); 
+0

Та же проблема: s –

1

Использование required_without_all для флажком:

return Validator::make($data, [ 
     'firstName' => 'required|max:255', 
     'lastName' => 'required|max:255', 
     'email' => 'required|email|max:255|unique:users', 
     'password' => 'required|confirmed|min:6', 
     'checkbox' =>'required_without_all', 
    ]); 

См: https://laravel.com/docs/5.1/validation#available-validation-rules

1

У меня просто было большое разочарование, потому что код, который я использую, возвращает значение флажка в виде логического значения.

Если у вас есть подобная ситуация, вы можете использовать следующее правило:

[ 
'checkbox_field' => 'required|in:1', 
] 
Смежные вопросы