一次添加多个联系人。如果联系人在表单中有详细信息。我想检查输出值是否为null我不想保存值。否则,保存值
<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请求中的所有值。不需要保存
答案 0 :(得分:0)
使用foreach循环检查它们:
$save = true;
foreach ($contacts as $contact) {
if ($contact === null) {
$save = false;
}
}
if ($save) {
//Save everything
}
答案 1 :(得分:0)
我不确定您是否表示要知道是否有{strong> any 的值是null
,还是 all 的所有值都是{{1 }}(或者更确切地说,不是 null
)。
无论哪种情况,都可以使用多个本机数组函数。
null
我会使用in_array:
null
除非进行了严格设置,否则使用宽松的比较在干草堆中搜索针头。
在您的情况下:
in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool
$save = in_array(null, $contacts);
我会使用array_filter
null
遍历数组中的每个值,将它们传递给回调 功能。如果回调函数返回true,则当前值为 from数组返回到结果数组。数组键是 保存。
...如果未提供回调,则将删除所有等于FALSE(see converting to boolean)的数组条目。
因此,如果您不能区分array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
或其他null
-y值,请使用:
false
将在$ contacts中创建仅包含$flitered = array_filter($contacts);
-y值的数组。
如果您想严格过滤truth
,则需要传递过滤器回调。由于没有null
函数,我们将对其进行定义:
is_not_null
(顺便说一句,我曾经提到过对其进行了稍微优化,以将匿名回调定义为$filtered = array_filter($contacts, function ($val) {
return $val !=== null;
});
,但这无关紧要。)
然后,您可以:
static
将数组强制转换为布尔值将导致$save = (bool) $filtered;
为空(false
中没有有效值),否则为$contacts
。