检查请求对象是空的Laravel

时间:2018-01-11 12:19:56

标签: php laravel laravel-5.3

一次添加多个联系人。如果联系人在表单中有详细信息。我想检查输出值是否为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请求中的所有值。不需要保存

2 个答案:

答案 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