сводная таблица foreach в API ресурсов? - PullRequest
0 голосов
/ 09 января 2020

У меня есть сводная таблица post_tag между таблицами сообщений и тегов.

Я хочу показать теги, принадлежащие посту, в API ресурса?

Фрагменты кода файла ресурса:

public function toArray($request)
{
    return [
        'Name'=> $this->title,
        'Descrption'=> $this->desc,
        'Image'=> $this->image,
        'Posted By'=> $this->user->name,
        'Category Name'=> $this->category->name,
        'Tags' => $this->whenPivotLoaded('post_tag', function () {
            return $this->tags->name;
        }),
    ];

}

Отношение добавлено в модель сообщения:

public function tags()
{
    return $this->belongsToMany(Tag::class)->withTimestamps();
}

Файл PostController. php:

public function index()
{
    $posts =  PostResource::collection(Post::get());

    return $this->apiRespone($posts , 'All Post', null ,200);
}

Один из результатов API:

 {
        "Name": "first post",
        "Descrption": "desc of the post",
        "Image": "SjvDfC1Zk5UzGO6ViRbjUQTMocwCh0lzEYW1Gufp.jpeg",
        "User Name": "test",
        "Category Name": "web dev"
  },

1 Ответ

0 голосов
/ 09 января 2020

Попробуйте обновить модель Post. Ваше красноречивое отношение еще не определено должным образом:

(Предполагается, что ваша сводная таблица 'post_tag' содержит post_id и tag_id столбцы)

public function tags()
{
    return $this->belongsToMany(Tag::class,'post_tag')->withPivot(['post_id', 'tag_id'])->withTimestamps();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...