amsoell / withable-sortable
一个用于给API端点添加预加载和排序功能的Laravel包
v1.0.0
2022-03-02 11:03 UTC
Requires
- php: ^7.4|^8.0
- illuminate/http: ^8.0|^9.0
- illuminate/support: ^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-29 06:29:16 UTC
README
此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
将返回具有posts
和comments
关系的用户,两者都预先加载
如果您想特别预加载一些关系,同时允许通过with=
进行额外的预加载,您可以在路由方法中指定它们
$users = User::query()->withable([ 'posts', ]);
您还可以设置默认排序参数
$users = User::query()->sortable([ 'updated_at', 'asc', ]);
即使在设置默认预加载或排序时,它们也可以通过查询字符串参数添加或覆盖。
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全
如果您发现任何安全相关的问题,请通过电子邮件andy@teamsoell.com联系,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。
Laravel包模板
此包是使用Laravel包模板生成的。