Попытка получить свойство необъекта Laravel 5.4 - PullRequest
0 голосов
/ 24 октября 2018

я все еще новичок и пытаюсь сохранить данные из файла REAXML.

поставщик для анализа REAXML из https://github.com/i4ucode/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
}

Модель Propkind

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
                ]

            );
        }
    }
}

этот кусокcode Propkind::where('name', $property->getCategoryNaskleng())->first()->id) ==> показывать данные, но trow

ErrorException Пытаться получить свойство не-объекта.

какое-то просветление, мудрость, очень ценю.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

ясно, что одно из значений $ properties не возвращает модель

через несколько часов, я обнаружил, что null является проблемой.спасибо @Devon за понимание.@simonecosci и @Leena Patel за ваш комментарий.

0 голосов
/ 24 октября 2018

разница между dd() и dump() заключается в том, что dd() останавливает выполнение скрипта (die), dump() показывает представление аргумента, но не останавливает скрипт.по этой причине я предполагаю, что ошибка (уведомление) появляется после того, как вы выложили этот фрагмент кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...