Laravel разведчик Алголия не объект - PullRequest
0 голосов
/ 13 сентября 2018

Я создаю приложение crud, использующее laravel и использующее scout with algolia для выполнения функций поиска.Однако, когда я выполняю scout: import «App \ Majors», он выдает ошибку «пытаюсь получить свойство не-объекта».Ниже моя модель.

class Major extends Model
{
    use Searchable;

    protected $fillable = ['title', 'album', 'lyrics', 'youtube_link'];

    public function toSearchableArray()
    {
        $genres = array_map(function($item) {
            return trim($item);
        }, explode(',', $this->college->genres));

        return array_merge( $this->toArray(), ['college' => $this->college->name, 'photo' => $this->college->photo, 'genres' => $genres]);
    }

    public function college()
    {
        return $this->belongsTo('App\College');
    }
}

1 Ответ

0 голосов
/ 14 сентября 2018

Я считаю, что проблема с $this->college.Возможно, по крайней мере одна из моделей не имеет установленного колледжа, и вы запускаете:

  1. $ this-> College-> жанры
  2. $ this-> College-> name
  3. $ this-> College-> photo

Все они потерпят неудачу, поэтому вам, вероятно, следует защитить свой код для таких случаев, например, вместо:

explode(',', $this->college->genres)

Вы должны использовать:

explode(',', $this->college ? $this->college->genres : '')
...