温馨提示×

Laravel分页如何与API资源结合

小樊
94
2024-07-25 04:21:12
栏目: 编程语言

在Laravel中,可以使用API资源类来将模型数据转换为 JSON 格式的响应数据。结合分页功能,可以实现在 API 中返回分页数据。以下是一个简单的示例代码:

首先,创建一个API资源类来转换模型数据:

php artisan make:resource PostResource

在创建的 PostResource 类中,可以定义需要返回的字段:

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class PostResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'content' => $this->content,
            'created_at' => $this->created_at,
        ];
    }
}

接下来,在控制器中使用 paginate 方法获取分页数据,并将其转换为 API 资源:

use App\Models\Post;
use App\Http\Resources\PostResource;

public function index()
{
    $posts = Post::paginate(10);
    return PostResource::collection($posts);
}

在上面的示例中,Post::paginate(10) 方法获取了分页数据,然后通过 PostResource::collection($posts) 将数据转换为 API 资源类,并返回给客户端。

最后,可以在 API 路由中定义该控制器的路由:

Route::get('posts', 'PostController@index');

通过以上步骤,可以实现在 Laravel 中返回带分页的 API 数据,并结合 API 资源类来进行数据转换。

0