根据前一项的ID获取数组中的下一项[关闭]

     2023-03-15     53

关键词:

【中文标题】根据前一项的ID获取数组中的下一项[关闭]【英文标题】:Getting the next item in an array based on the ID of the previous item [closed] 【发布时间】:2016-11-07 09:19:06 【问题描述】:

一点背景资料

我使用 AngularJS 作为前端框架,并使用 Laravel 作为前端通信的 API。

问题

对于这个应用程序,我有一个“部分”,在视图中有一个下一个/上一个按钮,当单击下一个时,会使用当前部分 ID 作为参数进行 API 调用。由此,我希望根据我使用的端点(单击哪个按钮)来获取数组中的下一个或上一个项目。

我将如何在 PHP/Laravel 中解决这个问题,是否有可能或者我应该重新考虑我的应用程序/api 的结构?

我现在拥有的

所以目前,我只有一个“Section”集合:

$sections = Section::orderBy('order', 'DESC')->orderBy('id', 'ASC')->get();

【问题讨论】:

【参考方案1】:

使用普通 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. 但是用户随后决定他们希望 Section ID 3 首先出现在前端,所以他们将 order 列设置为 4。我们的新 Section 数组现在将是 3, 1, 2, 4, 5。 @SeriousJelly:您应该在问题中提前提及此类限制。【参考方案2】:

您可以使用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
        ,
     ]
 

现在使用“next_page_url”或“prev_page_url”形式的url

【讨论】:

这可能有点问题,不敢相信我还没有尝试过这个。马上调查! 如果您需要其他任何东西,请告诉我 好的,我已经实现了这种方法,并且效果很好!谢谢

Ruby on Rails:获取模型中的下一项

】RubyonRails:获取模型中的下一项【英文标题】:RubyonRails:Getnextiteminmodel【发布时间】:2011-11-0419:28:48【问题描述】:假设我只是在“显示”视图上运行railsgscaffoldbookname:stringabout:text,我将如何实现一个按钮以转到模型中的下一... 查看详情

java示例代码_在循环时,确保可变数组中的下一项实际上是下一项

java示例代码_在循环时,确保可变数组中的下一项实际上是下一项 查看详情

获取循环中的下一项

】获取循环中的下一项【英文标题】:Gettingthenextiteminaloop【发布时间】:2011-12-2218:19:14【问题描述】:我想做的很简单:我有一个模型,我正在运行一个重组循环。现在我想将循环的前4项并排显示,然后在下一行继续显示接下... 查看详情

从 JavaScript 中的关联数组中获取第一项的最有效方法是啥?

】从JavaScript中的关联数组中获取第一项的最有效方法是啥?【英文标题】:WhatisthemostefficientwaytogetthefirstitemfromanassociativearrayinJavaScript?从JavaScript中的关联数组中获取第一项的最有效方法是什么?【发布时间】:2010-09-1516:25:29【... 查看详情

如果条件满足,列表中的下一项

】如果条件满足,列表中的下一项【英文标题】:Nextiteminalistifconditionmet【发布时间】:2017-04-2416:21:58【问题描述】:candidates=[\'abacus\',\'ball\',\'car\']forcandidateincandidates:ifdict[candidate]=="true":"""next"""else:continue"""dosomething"""我在这里... 查看详情

获取数组第一项的最快方法是啥? [复制]

】获取数组第一项的最快方法是啥?[复制]【英文标题】:Whatisthefastestwaytogetthefirstitemofanarray?[duplicate]获取数组第一项的最快方法是什么?[复制]【发布时间】:2012-09-2814:25:57【问题描述】:可能重复:Getfirstelementofanarray在php中... 查看详情

如何使用 Mongoose 获取当前项的下一项和上一项

】如何使用Mongoose获取当前项的下一项和上一项【英文标题】:HowtofetchnextandpreviousitemofthecurrentonewithMongoose【发布时间】:2012-02-2712:39:46【问题描述】:我有一个博客。在单个帖子页面上,我想显示指向上一篇文章的链接,如果... 查看详情

如何使用 Mongoose 获取当前项的下一项和上一项

】如何使用Mongoose获取当前项的下一项和上一项【英文标题】:HowtofetchnextandpreviousitemofthecurrentonewithMongoose【发布时间】:2012-02-2712:39:46【问题描述】:我有一个博客。在单个帖子页面上,我想显示指向上一篇文章的链接,如果... 查看详情

C++ 自定义流操纵器,可更改流中的下一项

】C++自定义流操纵器,可更改流中的下一项【英文标题】:C++customstreammanipulatorthatchangesnextitemonstream【发布时间】:2010-10-2210:12:43【问题描述】:在C++中,要以十六进制打印数字,请执行以下操作:intnum=10;std::cout<<std::hex<&... 查看详情

extjs中怎样获取form表单中的每一项的值

...表单id效果。参考技术AExtJS中有事需要获得Form表单的值,根据API可知getValues()可以获得单签Form表单中所有Name值的一个对象。片段代码如下:varformValues=formpanel.getForm().getValues();//获取表单中的所有Name键/值对对象alert(formValues["f... 查看详情

如果 next(item) 移动到列表中的下一项,则相当于 next(item) python

】如果next(item)移动到列表中的下一项,则相当于next(item)python【英文标题】:ifnext(item)movestothenextiteminalist,whatistheeqvilantofnextnext(item)python【发布时间】:2015-01-1805:43:29【问题描述】:这里是上下文的代码。defprocessScores(file,score):#op... 查看详情

循环遍历数组中的项目以分配数据ID,但仅获取数组中的最后一项

...遍历数组中的项目以分配数据ID,但仅获取数组中的最后一项【英文标题】:Loopingoveritemsinarraytoassigndata-id,butonlygettinglastiteminarray【发布时间】:2017-03-2715:17:04【问题描述】:目标给每个礼物一个data-id,一直到gifts.length(即245)... 查看详情

关于foreach方法能否改变数组中每一项的值

参考技术A    在对数组中的某一项进行修改的时候,总是情不自禁地想到用foreach遍历,在遍历的时候通过条件判断来改变其某一项的值。这种想法真是太危险了。这是因为foreach传入的函数中的参数item其实是对其... 查看详情

python程序设计求s=1+2+4+7+11+16...211的和?

根据给定的序列,我们可以通过观察找出其中的规律。首先,我们可以列出前几项:1,2,4,7,11,16,22,29,37,46,56,67,79,92,106,121,137,154,172,191,211我们可以发现,每一项都比前一项多了一个递增的值,这个递增的值从1开始,每次增加1。因... 查看详情

此结构数组中最后一项的意义

】此结构数组中最后一项的意义【英文标题】:Significanceoflastiteminthisarrayofstructs【发布时间】:2021-04-2607:59:44【问题描述】:myarray中的最后一项如何有效?假设这是一个“空终止列表”。这是C代码。typedefstructsFoochar*a;char*b;SFOO;s... 查看详情

如何默认选择第一项,然后在角度 6 中突出显示选定的下一项 json 数据

】如何默认选择第一项,然后在角度6中突出显示选定的下一项json数据【英文标题】:howtoselectfirstitembydefaultandthenhighlighttheselectednextitemofjsondatainangular6【发布时间】:2019-01-1715:08:21【问题描述】:这是我的customer.component.html。我... 查看详情

有规律分数求和!

...的分母 sum+=fenzi/fenmu; fenzi=fenzi+fenmu;//下一项的分子为前一项的分子分母之和 fenmu=fenzi-temp;//分母为前一项的分子。新分母=新分子-原分母 if(n<19)//去掉最后一项"+"号的输出 System.out.print("+"); else System.out.print("="); if(n%... 查看详情

Javascript 仅设置数组中最后一项的属性

】Javascript仅设置数组中最后一项的属性【英文标题】:Javascriptonlysetsattributeforlastiteminarray【发布时间】:2011-10-2316:39:25【问题描述】:我有一个约50个项目的数组,在javascript中,它通过这个数组来检查一个条件,如果满足条件... 查看详情