【发布时间】:2021-09-08 19:13:12
【问题描述】:
伙计们,我是 Laravel 的新手。我目前正在构建一个 API,并且我有几个端点(我们将讨论的一个是获取所有任务和获取单个任务)
问题在于,每当我调用 Get All Tasks 端点时,它都会返回任务资源 + 那里的用户资源。但是,当我调用 Get Single Task 端点时,它只会返回 TaskResource,而其中没有 User。有什么想法吗?
这里是资源的代码
class TaskResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'estimate' => $this->estimate,
'status' => $this->status,
'type' => $this->type,
'user' => new UserResource($this->whenLoaded('user'))
];
}
}
class UserResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'avatar' => $this->avatar,
'tasks' => TaskResource::collection($this->whenLoaded('tasks'))
];
}
}
这是我在控制器中获取任务的方法。 https://prnt.sc/16q0rlh
【问题讨论】:
-
代码应该作为文本添加到这里,而不是场外截图。但是您是否看到
with('user')在您的actionGetTasks 上而不是在您的actionGetTask 上?这就是为什么 -
谢谢!关于截图 - 好的,我会知道未来的:)