Как получить дочерние данные вместе с данными родительского писателя в laravel eloquent? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть четыре стола,

      user              writer            blog                                    likes

   id   name          id   name         id   writer_id  content                 user_id    blog_id
   1     aa            1    cc          1       1        lorem                     1          2
   2     bb            2    dd          2       1        lorem ipsum               1          3  
                                        3       2        lorem ipsum               2          2

У меня user id = 2, и теперь я должен получить blog writer data.Мне нужно, чтобы результат был в этой форме,

data: {
  'blog': {
      'id':2,
      'writer_id': 1,
      'content': 'lorem ipsum'
  },
  'writer':{
      'id':2,
      'name':'dd'
  }
}

Я пишу это отношение в likes model, но оно не работает для меня.

public function writer()
    {
        return $this->hasManyThrough('App\Writer', 'App\Blog', 'writer_id', 'id', 'id', 'id');
    }

Как я могу написатькрасноречивое отношение для отображения данных, как указано выше?

1 Ответ

0 голосов
/ 20 сентября 2019

Я немного изменил свое отношение, и оно сработало для меня

  public function writer()
        {
            return $this->hasManyThrough('App\Writer', 'App\Blog', 'id', 'id', 'blog_id', 'id');
        }

Здесь в отношении первых двух параметров указаны модели и third parameter id indicates id in the blog table, fourth id indicates the id in writer table соответственно.

...