amsoell/withable-sortable

一个用于给API端点添加预加载和排序功能的Laravel包

v1.0.0 2022-03-02 11:03 UTC

This package is auto-updated.

Last update: 2024-09-29 06:29:16 UTC


README

Latest Version on Packagist Total Downloads

此Laravel包允许在API控制器中实现动态预加载和排序。

安装

您可以通过composer安装此包

composer require amsoell/withable-sortable

使用方法

在API控制器中的任何Eloquent查询上添加withable()sortable()调用,以自动通过查询字符串参数启用预加载和排序。无控制器示例:

use Illuminate\Support\Facades\Route;

Route::get('/users', function () {
    $users = User::query()
        ->sortable()
        ->withable();

    return $users->paginate()->withQueryString();
});
  • /users 将返回按默认排序(升序的created_at)排序的用户
  • /users?sort=email 将返回按电子邮件地址排序的用户
  • /users?sort=email&direction=desc 将返回按电子邮件降序排序的用户
  • /users?with=posts 将返回具有posts关系的用户,并预先加载
  • /users?with[]=posts&with[]=comments 将返回具有postscomments关系的用户,两者都预先加载

如果您想特别预加载一些关系,同时允许通过with=进行额外的预加载,您可以在路由方法中指定它们

$users = User::query()->withable([
    'posts',
]);

您还可以设置默认排序参数

$users = User::query()->sortable([
    'updated_at',
    'asc',
]);

即使在设置默认预加载或排序时,它们也可以通过查询字符串参数添加或覆盖。

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全

如果您发现任何安全相关的问题,请通过电子邮件andy@teamsoell.com联系,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件

Laravel包模板

此包是使用Laravel包模板生成的。