Я пытаюсь использовать laravel required
в моем коде, к сожалению, он не работает даже для пустой строки. Я не хочу, чтобы это произошло из-за пустой строки.Laravel validator `required` не работает для пустой строки также
$validator = \Validator::make(array("name"=>""), array("name"=>"required"));
if ($validator->fails()){
var_dump($validator->messages());
} else {
die("no errors :)");
}
Это дает мне следующий вывод
object(Illuminate\Support\MessageBag)[602]
protected 'messages' =>
array (size=1)
'name' =>
array (size=1)
0 => string 'The name field is required.' (length=27)
protected 'format' => string ':message' (length=8)
он должен пройти, так как я даю пустую строку в качестве name
поля.
Вышеупомянутое поведение происходит в среде OSX (версия PHP 5.5.18), но отлично работает в среде linux (версия PHP 5.5.9-1ubuntu4.5).
Правило 'required' фактически возвращает false, если вы передаете пустую строку. – lukasgeiter
Я помню, как я отвечал на аналогичный вопрос, когда человек хотел проверить, только если поле присутствовало в форме, вы можете проверить его и, возможно, повторно использовать код: http://stackoverflow.com/questions/23595528/laravel-only -Validate-элементы, что-являются отправленными-и-игнорируемых покоем из-проверки массива/23595964 # 23595964 –