API 资源空白

API Resource comes blank

在我编写的 API 项目中,我在 2 个表中有数据,“follows”和“followers”。我想用Resource自定义,导出为json,但是用户信息是空白的。你认为是什么原因?

FollowerResource

 public function toArray($request)
    {
        return [
            'id' => $this->id,
            'user' => new UserResource($this->user),
        ];
    }

关注资源

public function toArray($request)
    {
        return [
            'id' => $this->id,
            'user' => new UserResource($this->user),
        ];
    }

用户控制器

     public function followUser() {
        $follows = Follows::all();
        return response()->json(FollowResource::collection($follows),200);

    }
    public function followerUser() {
        $followers = Followers::all();
        return response()->json(FollowerResource::collection($followers),200);

    }

输出

关注和追随者路线

  {
    "id": 1,
    "user": null
  },
  {
    "id": 2,
    "user": null
  },
  {
    "id": 3,
    "user": null
  },
  {
    "id": 4,
    "user": null
  },
  {
    "id": 5,
    "user": null
  },
  {
    "id": 6,
    "user": null
  }

在此先感谢您的帮助。祝你身体健康。

更新

用户资源

public function toArray($request)
    {
        return [
            'user_id'       => $this->id,
            'email'         => $this->email,
            'description'   => $this->description,
            'first_name'    => $this->first_name,
            'last_name'     => $this->last_name,
            'full_name'     => $this->first_name . ' ' . $this->last_name,
        ];
    }

更新二

关注者数据

Illuminate\Database\Eloquent\Collection {#1240 ▼
  #items: array:11 [▼
    0 => App\Models\Followers {#1241 ▼
      #connection: "mysql"
      #table: "followers"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:4 [▼
        "id" => 1
        "user_id" => 3
        "created_at" => "2002-08-01 03:26:41"
        "updated_at" => "2020-08-13 11:32:28"
      ]
      #original: array:4 [▶]
      #changes: []
      #casts: []
      #classCastCache: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #fillable: []
      #guarded: array:1 [▶]
    }
    1 => App\Models\Followers {#1242 ▶}
    2 => App\Models\Followers {#1243 ▶}
    3 => App\Models\Followers {#1244 ▶}
    4 => App\Models\Followers {#1245 ▶}
    5 => App\Models\Followers {#1246 ▶}
    6 => App\Models\Followers {#1247 ▶}
    7 => App\Models\Followers {#1248 ▶}
    8 => App\Models\Followers {#1249 ▶}
    9 => App\Models\Followers {#1250 ▶}
    10 => App\Models\Followers {#1251 ▶}
  ]
}

将您的关注资源更改为此

public function toArray($request)
{
    return [
         'id' => $this->id,
         'user' => new UserResource($this->user_id),
    ];
}

在您的 Follow Resource 文件中添加这一行

public function toArray($request)
    {
        $user = User::find($this->user_id);
        return [
            'id' => $this->id,
            'user' => new UserResource($user),
        ];
    }

如果有帮助请告诉我