{{ thread.title }}

{{ locked_reason }} لاراول

@bvk {{ experience | farsi }} تجربه نویسنده آخرین فعالیت ٣ هفته پیش

سلام دوستان گرامی ، من یک query دارم بدین شکل :
$query         = 'SELECT id,type,notifiable_id,notifiable_type,data,main_object,read_at,created_at,updated_at,y.count FROM notifications 

که خروجی صفحه اول درسته ولی صفحه دوم به بعد میاد برای خروجی اندیس میزاره مشکل چیه چه طور میشه اینو رفع کرد؟

{
    "current_page": 2,
    "data": {
        "2": {
            "id": "ace687c6-4158-41fd-9e7d-fd9884970830",
            "type": "UserCommentedPostProfile",
            "notifiable_id": 1,
            "notifiable_type": "App\\Module\\Users\\Models\\User",
            "data": "{\"comment_id\":2,\"user_id\":2,\"first_name\":\"ali\",\"last_name\":\"rezaei\",\"creator_type\":\"user\"}",
            "main_object": 1,
            "read_at": null,
            "created_at": "2018-03-25 13:06:58",
            "updated_at": "2018-03-25 13:06:58",
            "count": 1
        }
    },
    "from": 3,
    "last_page": 2,
    "next_page_url": null,
    "path": "http://localhost:8000/api/v2/notifications",
    "per_page": "2",
    "prev_page_url": "http://localhost:8000/api/v2/notifications?page=1",
    "to": 3,
    "total": 3
}

اینم متود paginate :

public function paginate($items, $perPage)
    {
        $pageStart = request('page', 1);
        $offSet    = ($pageStart * $perPage) - $perPage;
        $itemsForCurrentPage = $items->slice($offSet, $perPage);

        return new LengthAwarePaginator(
            $itemsForCurrentPage, $items->count(), $perPage,
            Paginator::resolveCurrentPage(),
            ['path' =>Paginator::resolveCurrentPath()]
        );
    }

به نظر خودم مشکل اینه که کوئری رو باید به کالکشن تبدیل کنیم که بتونیم paginate کنیم اگر میشد این کوئری رو مثل الکوئنت نوشت فکر نمیکنم مشکلی پیش میومد.