获取的下一个项目中的阵列基于先前项
我使用AngularJS作为前端框架和Laravel用于前端与进行通信的API的一些背景信息的ID。
问题
对于这个应用程序我有其在图中,下一个被点击时的下一/先前按钮“部分的”,API调用与所述当前段ID制成为参数。从此我希望能够根据我使用的端点(哪个按钮被点击)来获取数组中的下一个或上一个项目。
我将如何在PHP/Laravel中介绍这一点,是否有可能或应该重新考虑我的app/api的结构?
我现在
有这样的时刻是什么,我所有的我已经是一个“节”征收:
$sections = Section::orderBy('order', 'DESC')->orderBy('id', 'ASC')->get();
您可以使用Pagination
$sections = Section::orderBy('order', 'DESC')->orderBy('id', 'ASC')->paginate(2);
return response()->json($sections);
然后你会得到这样的(我转换成JSON)
{
"total": 17,
"per_page": 2,
"current_page": 1,
"last_page": 9,
"next_page_url": "{{URL}}?page=2",
"prev_page_url": null,
"from": 1,
"to": 2,
"data": [
{
"id": 40,
"order":1
},
{
"id": 41,
"order":2
},
]
}
现在使用的URL形式 “next_page_url” 或 “prev_page_url”
使用纯SQL您可以在以下方式做到这一点获得下一个项目。
SELECT *
FROM TABLE_NAME
WHERE COLUMN_ID =
(SELECT min(COLUMN_ID)
FROM TABLE_NAME
WHERE COLUMN_ID > REPLACE_PREVIOUS_ID_HERE)
在上面的查询中,子查询只是在您的上一个键之后找到下一个COLUMN_ID并将其返回给主查询。
的问题是订货,我不能使用ID,因为有时'订单'栏可以覆盖这个,例如,用户可以输入ID为1,2,3,4,5的5个部分。但是用户然后决定他们w^ant部分ID 3先出现在前端,因此他们将订单列设置为4.我们新的部分数组现在将是3,1,2,4,5。 – ChrisBratherton
@SeriousJelly:您应该在您的前面提到这些限制题。 – CBroe
这可能是一件事,不敢相信我还没有尝试过这一个。现在看看它! – ChrisBratherton
让我知道你是否需要其他东西 – AgeValed
好吧,我已经实现了这种方法,它完美的工作!谢谢 – ChrisBratherton