php - Laravel:动态获取查询中使用的订单?
问题描述
我正在尝试创建一个通用success
方法来解析我的查询并自动设置一些响应数据。
$items = Item::query()
->where('blah', $req->('blah_filter')
->orderBy('name', 'desc')
->paginate();
return success($items, 'yay, some results');
到目前为止,它工作正常,
但是,我也想返回使用的“订单”。paginate
有没有办法从 a orget
集合中嗅出它?订单清单?
编辑:按顺序,我的意思是来自orderBy
不相关的模型。
例如,使用 Paginator 集合,我们可以返回:
return [
'total' => $items->total(),
'per_page' => $items->perPage(),
'current_page' => $items->currentPage(),
'items' => $items->items()
];
但似乎无法获得查询中使用的排序:
return [
'order' => $items->someCallHere()
];
// trying to return something like this:
[
'order' => [
'by' => 'name',
'direction' => 'desc'
]
]
解决方案
您需要稍微更改您拥有的代码。
从最后删除,paginate()
因为您首先要获得订单。之后添加它以检索items
.
$items = Item::query()
->where('blah', $req->('blah_filter')
->orderBy('name', 'desc');
// in order to get the ordering used you can use:
$ordering = $items->getQuery()->orders;
// do something with $ordering
// this will be an array like this:
/**
array:1 [▼
0 => array:2 [▼
"column" => "created_at"
"direction" => "desc"
]
]
*/
return success($items->paginate(), 'yay, some results');
推荐阅读
- nginx - 启用 TLSv1.3 时,是否可以在 Qualys SSL 服务器测试中获得密码强度最高分?
- html - 将十字 png 居中到 css 网格中
- autodesk-forge - 基于属性的动态元素着色
- python - 由于numpy中的and语句导致的ValueError
- php - “!--”自动添加到
我在我的 Linux VM 上完成了一个项目并将其推送到 github 存储库,以便我的同事可以设置另一个 VM 来托管它。我的代码虽然丑陋,但可以正常工作,但是当它托管在 VM 上时,代码就坏了。过了一会儿,我发现我的代码中的 php 标记不知何故从
<?php
to变成了 to ,<!--?php
并将我的代码的- python - 如何在一个列上组合两个数据框,其中一个缺少行?
- javascript - 如何获取页面加载时不包含所有元素的资源(使用 React)?
- c# - IConfiguration(在返回值之前替换占位符标签)
- powerbi - Dax - 每个月的累计总数(日期表有问题)
- html - 浮动在一个 div 中的三个 div 的垂直对齐