php - php - 检查输入数组是否为空 - Laravel 5.4

我有一个输入看起来像这样。


{!! Form::text('inventory[0][amount]', null, ['class'=>'form-control']) !!}


{!! Form::text('inventory[0][expiry_date]', null, ['data-format'=>'D, dd MM yyyy', 'class'=>'form-control']) !!}



print_r($_POST )结果


[inventory] => Array ( [0] => Array ( [amount] => 66 [expiry_date] => 2019/05/20 ) )



我正在尝试检查amountexpiry_date是否不是null


if ( $input['inventory[0][amount]'] and $input['inventory[0][expiry_date]'] != null )



得到了

Undefined index : inventory [0] [amount ]

时间:

empty()试试这种方法!


if (!empty($_POST['inventory'][0]['amount']) && !empty($_POST['inventory'][0]['expiry_date']))


{ 


 //You code goes here


}



你可以使用点符号和$request->filled($key)来实现这一点。

$request->filled(['inventory.0.amount', 'inventory.0.expiry_date'])

如果存在amount 和expiry_date,则返回true,不是空的。

例如。





use IlluminateHttpRequest;



// ...



public function store(Request $request)


{


 if ($request->filled(['inventory.0.amount', 'inventory.0.expiry_date'])) {


 // Both amount and expiry_date are present and not empty...


 }


}



你没有正确使用数组key,请将代码替换为,


$arr = array(


 'inventory' => Array (


 0 => Array (


 'amount' => 66,


 'expiry_date' => '2019/05/20'


 ) 


 )


);



if($arr['inventory'][0]['amount'] and $arr['inventory'][0]['expiry_date'] != ''){



此数组中没有名为'inventory[0][amount]'的键,因此将按如下方式检查它:


if(array_key_exists('inventory',$input) && 


 array_key_exists(0,$input['inventory']) && 


 array_key_exists('amount',$input['inventory'][0]) && 


 !empty($input['inventory'][0]['amount'])


//add for expiry too


 ){



}



...