我在文件夹database\data\countries.json
中有json文件,我有 CountriesTableSeeder.php
我想将 countries.json 中的所有数据播种到我的国家/地区。但它发生错误Trying to get property of non-object
我已按照我找到的步骤进行操作,但仍然出现错误。
这是我的模特:
protected $fillable = ['country_name', 'iso_code'];
这是我的播种机代码:
public function run()
{
$countryJson = File::get("database/data/countries.json");
$data = json_decode($countryJson, true);
foreach ($data as $obj) {
Country::create(array(
'country_name' => $obj->name, 'iso_code' => $obj->sortname
));
}
}
答案 0 :(得分:2)
你需要在foreach中传递相同的变量,同时通过检查dd($ data)确保你有name元素;并且您需要通过$ obj [' name']而不是$ obj->名称获取数组元素,因为它不是对象。
$data = json_decode($countryJson, true);
foreach ($data['countries'] as $obj) {
Country::create(array(
'country_name' => $obj['name'], 'iso_code' => $obj['sortname']
));
}