我正在嘗試建立一個包含詳細資訊的數組,以傳遞給儀表板資源,但在嘗試將資料傳遞給資源時遇到了一些問題。
在我的控制器中,我正在建立查詢,如下所示:
$user = auth()->user(); $teams = Team::query() ->where('user_id', $user->id) ->get(); $jobs = Job::query() ->where('user_id', $user->id) ->get(); return new DashboardResource($user, $jobs, $teams);
然後再資源中
public function toArray(Request $request): array { return [ 'name' => $user->name, 'teams' => TeamResource::collection($this->teams), 'jobs' => JobResource::collection($this->jobs), ]; }
我一直遇到一個問題,就是;
Property [jobs] does not exist on this collection instance.
我覺得我可能做得很不對。
JsonResource建構函式只接受一個參數。您應該在使用者模型內建立Teams和Jobs的關聯關係,然後在資源中呼叫$user->teams和$user->jobs。
#