как правильно возвращать Ресурсы API (Resource) laravel?
по докам https://laravel.su/docs/8.x/eloquent-resources
связь многие ко многим
class TagController extends Controller
{
public function index()
{
return TagResource::collection(Tag::orderBy('created_at', 'desc')->get());
}
}
class TaskController extends Controller
{
public function index()
{
return TaskResource::collection(Task::orderBy('created_at', 'desc')->get());
}
}
resourses получается если так сделать то будет бесконечный цикл или как это назвать т.е они в этих местах
'tags' => TagResource::collection($this->tags),
'tasks' => TaskResource::collection($this->tasks),
будут друг друга вызывать как этого избежать?
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,
'name' => $this->name,
'created_at' => $this->created_at,
'tags' => TagResource::collection($this->tags),
];
}
}
class TagResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'created_at' => $this->created_at,
'tasks' => TaskResource::collection($this->tasks),
];
}
}