laravel插入查询值为空

laravel插入查询值为空

 <?xml version="1.0" encoding="utf-8"?>
<elenco_clienti>
 <cliente>
  <cod>00001</cod>
  <name>xxxxxxxxxx</name>
  <address>VIA nnnnnnnn</address>
</cliente>
<cliente>
 <cod>00003</cod>
 <name>yyyyyyyyyyy</name>
 <address>VIA calllll</address>
</cliente>
<cliente>
 <cod>00005</cod>
 <name>oooooooooooo</name>
 <address></address>
</cliente>
</elenco_clienti>

我有这个Xml文件,并将我的数组设置为:
 $xml1 = simplexml_load_file($path);
 $json = json_encode($xml1);
 array = json_decode($json, true);
 $clien =$array['cliente'];

但当我提出疑问时
 if(!empty($clien))
 {
     DB::table('clientis')->insert($clien);
     dd('Insert Recorded successfully.');
 }

我错了
QueryException Array to string conversion (SQL: insert into `clientis`......

我认为价值是空的。。。。。
我该怎么办?
谢谢

最佳答案

出现此错误是因为最后一项中的address是空数组:

2 => array:3 [▼
    "cod" => "00005"
    "name" => "oooooooooooo"
    "address" => []
]

你需要这样做来解决这个问题:
$clien = array_map(function($i) {
    $i['address'] = empty($i['address']) ? '' : $i['address'];
    return $i;
}, $clien);

关于php - laravel插入查询值为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48376258/

10-09 08:12