超过最大堆栈深度 Laravel 8

Maximum stack depth exceeded in Laravel 8

我有资源 collection :

class OverviewResource extends JsonResource
{
    
    public function toArray($request): array
    {
        return [
            'first_name' => $this->first_name,
            'last_name' => $this->last_name,
            'email' => $this->email, 
            'phone' => $this->phone,
            'friends' => OverviewResource::collection(User::getFriends()),
        ];
    }
}

我在这行有错误

'friends' => OverviewResource::collection(User::getFriends()),

从用户模型调用此函数时

    public static function getFriends(){
         return User::where
            //query code here
        })->get();
    }

我遇到了这个错误

Maximum stack depth exceeded

如果用户有 n 个好友,则:

OverviewResource::collection(User::getFriends())

将创建 n 个新资源。

这些资源中的每一个都将调用:

OverviewResource::collection(User::getFriends())

并创建 n 个新资源。

每个新资源然后再次调用它,然后再次调用新资源,...直到达到允许的最大堆栈。

您将不得不重新考虑如何实现递归以使其终止。