[英]Check Request object is empty Laravel
一次添加多个联系人。 如果联系人在表单中有详细信息。我想检查输出值是否为空,我不想保存这些值。 否则,保存值
<tr >
<td> {!!Form::text('contact[][first_name]',NULL,['class'=>'form-control'])!!}
</td>
<td> {!!Form::text('contact[][last_name]',NULL,['class'=>'form-control'])!!}
</td>
<td> {!!Form::text('contact[][email]',NULL,['class'=>'form-control'])!!}
</td>
<td> {!!Form::text('contact[][contact]',NULL,['class'=>'form-control'])!!}
</td>
我面临的问题是
$contacts = $request->contacts ;
我想检查此请求中是否有任何不为null的值保存到database.if请求中的所有值。 不需要保存
用foreach循环检查它们:
$save = true;
foreach ($contacts as $contact) {
if ($contact === null) {
$save = false;
}
}
if ($save) {
//Save everything
}
我不确定您是否想知道是否存在任何值为null
,或者是否所有值均为null
(或者,任何值都不为 null
)。
无论哪种情况,都可以使用多个本机数组函数。
null
我会使用in_array :
in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool
除非设置严格,否则使用松散比较在干草堆中搜索针。
在您的情况下:
$save = in_array(null, $contacts);
null
我会用array_filter
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
遍历数组中的每个值,将它们传递给回调函数。 如果回调函数返回true,则将数组中的当前值返回到结果数组中。 保留阵列键。
...如果未提供回调,则将删除所有等于FALSE的数组条目( 请参阅转换为boolean )。
因此,如果您不区分null
或其他false
-y值,请使用:
$flitered = array_filter($contacts);
这将在$ contacts中创建仅包含truth
值-y值的数组。
如果要严格过滤null
,则需要传递过滤器回调。 由于没有is_not_null
函数,我们将对其进行定义:
$filtered = array_filter($contacts, function ($val) {
return $val !=== null;
});
(顺便说一句,我已经提到过对其进行了一些微优化,以将匿名回调定义为static
,但这是不相关的)。
然后,您可以:
$save = (bool) $filtered;
如果为空,则将数组强制转换为布尔值将导致false
( $contacts
没有有效值),否则返回true
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.