我仍然是新手,并尝试从REAXML文件中保存数据。
用于从https://github.com/i4ucode/reaxml解析REAXML的供应商
路线:
Route::get('/admin/synctest', 'Admin\\AdminController@synctest');
模型属性
class Property extends Model
{
protected $table = 'properties';
protected $primaryKey = 'id';
protected $fillable = ['refID', 'propkind_id', 'other column'];
public function Kind()
{
return Propkind::findOrfail($this->propkind_id)->name;
}
//other public function
}
模型提示
class Propkind extends Model
{
protected $table = 'propkinds';
protected $primaryKey = 'id';
protected $fillable = ['id', 'name', 'slug'];
public function Property(){
return $this->hasMany('App\Property');
}
//other public function
}
控制器
public function synctest()
{
// get new class
$processor = new \REA\XmlProcessor();
$directories = Storage::disk('reaxml')->files();
foreach ($directories as $zipFile) {
//get XML file
$files = file_get_contents(url('feed/' . $zipFile));
//process the xml
$properties = $processor->parseXmlString($files);
//loop
foreach ($properties as $property) {
Property::updateOrCreate(
['refID' => $property->getRefID()],
[
//other code
'propkind_id' => Propkind::where('name', $property->getCategoryNaskleng())->first()->id, ===> ErrorException (E_NOTICE) Trying to get property of non-object
]
);
}
}
}
这段代码Propkind::where('name', $property->getCategoryNaskleng())->first()->id)
==>显示数据但拖动
ErrorException试图获取非对象的属性。
某种启发,智慧,非常欣赏。
答案 0 :(得分:0)
dd()
和dump()
之间的区别在于dd()
停止脚本(模具)的执行,dump()
显示参数的表示形式,但不显示停止脚本。
因此,我想错误(通知)是在您发布的这段代码执行之后发生的。
答案 1 :(得分:0)
显然,$ properties的值之一不会返回模型
几个小时后,我发现问题是 null 。 谢谢@Devon的见识。 @simonecosci和@Leena Patel进行评论。