1

モデルリソースがあり、その中で$this->tagsを呼び出しています

このリソースは次のように返されます。

"data": {
  "some_keys"  : ...,
  "some_keys2" : ...,
  "tags":[
           {
             "id": 1,
             "name": "c++",
             "parent_id": null,
             "type": null,
             "created_at": "2020-09-27 20:37:57",
             "updated_at": "2020-09-27 20:37:57",
             "pivot": {
                "task_id": 43,
                "skill_id": 1
             }
           }
        ]

私は次のようにしたい:

"data": {
  "some_keys"  : ...,
  "some_keys2" : ...,
  "tags": [
            {
              "id": 1,
              "name": "c++"
            }
          ]

私のリソース モデル:

public function toArray($request)
{
    $data = parent::toArray($request);
    $data["tags"] = $this->tags;
    return $data;
}

私のタスクモデル:

public function tags(){
    return $this->belongsToMany(Skill::class, 'task_skills', 'task_id', 'skill_id');
}

リソース モデルのタグの列を減らすにはどうすればよいですか?

私はこのように解決しました:

$data["tags"] = $this->tags->makeHidden(['pivot','created_at','updated_at','type','parent_id']);
4

1 に答える 1