Получить данные из сводной таблицы Eloquent - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь получить данные из сводной таблицы, но там написано «Попытка получить свойство 'tags' не-объекта".Также find (1) в контроллере ничего не возвращает, хотя в таблице есть некоторые данные.

Мои модели:

class Videos extends Model
{
    protected $table = 'videos';
    function tags(){
        return $this->belongsToMany('App\Models\Videos\Tags','tag_video','video_id','tag_id');

    }


class Tags extends Model
{

    function videos(){
        return $this->belongsToMany('App\Models\Videos\Videos','tag_video', 'tag_id','video_id');
    }
}

Мой контроллер:

 public function fetch(){
        $videos_from_supercategories =
        $videos_with_tags = Videos::find(1);
        $tags = $videos_with_tags->tags->first();

      $data['tags']=$tags;

        return $data;
    }

Может кто-нибудь помочь, пожалуйста?

1 Ответ

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

Videos::find(1) пытается найти видео с id = 1, если это не указано, ничего не возвращается, и вы получаете исключение, вы можете использовать findOrFail(1).

findOrFail выбросит исключение не найденной модели, вы хотите, чтобы это произошло, потому что в противном случае вы пытаетесь получить доступ к свойствам необъекта.

В ваших отношениях вы должны указать, какие столбцы вы хотите включить:

public function fetch()
{
    return Videos::findOrFail(1)->tags->first()->pivot->column1;
}

class Videos extends Model
{
    protected $table = 'videos';
    function tags()
    {
        return $this->belongsToMany('App\Models\Videos\Tags','tag_video','video_id','tag_id')->withPivot('column1', 'column2');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...