PHP

时间:2017-01-30 16:38:50

标签: php arrays

我有一个使用Laravel的表单,带有两个输入文本:

<div class="col-md-6">
    <div class="form-group">
        {!! Form::label('price', 'Preço') !!}
        <div class="input-group multi-control-group">
            <span class="input-group-addon">De</span>
            {!! Form::text('price[]', null, ['class' => 'form-control']) !!}
            <span class="input-group-addon">Até</span>
            {!! Form::text('price[]', null, ['class' => 'form-control']) !!}
        </div>
    </div>
</div>

这是我的验证功能:

if(!empty($request->year)) { 
   dd($request->year);
}

但是当提交没有设置值的表单时,数组空传递验证并显示两个位置没有值。

array:2 [▼
  0 => ""
  1 => ""
]

我想让这个数组在验证中失败。如何进行此验证?

1 个答案:

答案 0 :(得分:0)

即使为空,也会提交文本输入。由于您将这些放在数组中,因此它们是空元素,但仍然是阻止数组为空的元素。过滤掉空元素,然后检查:

if(!empty(array_filter($request->year))) {
    dd($request->year);
}

请注意,字符串0也会被过滤掉。如果这是一个问题,那么你需要一个替代方法,例如循环遍历数组并检查""