试图获取非对象Laravel 5.4的属性

时间:2018-10-24 12:19:42

标签: laravel laravel-5.4

我仍然是新手,并尝试从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试图获取非对象的属性。

某种启发,智慧,非常欣赏。

2 个答案:

答案 0 :(得分:0)

dd()dump()之间的区别在于dd()停止脚本(模具)的执行,dump()显示参数的表示形式,但不显示停止脚本。 因此,我想错误(通知)是在您发布的这段代码执行之后发生的。

答案 1 :(得分:0)

  

显然,$ properties的值之一不会返回模型

几个小时后,我发现问题是 null 。 谢谢@Devon的见识。 @simonecosci和@Leena Patel进行评论。