如何在根据特定列排序后获取除前5条记录以外的所有记录

jbose2ul  于 2021-06-19  发布在  Mysql
关注(0)|答案(3)|浏览(247)

我有18条记录是根据特定的列排序的。
必须首先显示前5条记录,单击特定按钮时必须显示另一条记录。
我该怎么做?我应该用javascript吗?
这是我的问题。。。

public function theMostImportant()
{
    // return  CategoryActivity::all()->sortByDesc("priority")->take(5);
    return  CategoryActivity::all()->sortByDesc("priority");
}

在我看来,我的代码是这样的:

@foreach($priorityProjectCategory as $importantCategory)

    {{--{{dd($importantCategory)}}--}}

    <li><a href="#" data-filter=".{{str_replace(' ','',$importantCategory['faName'])}}"
        class="current">{{$importantCategory['faName']}}
        <sup></sup>
    </a></li>
@endforeach
5kgi1eie

5kgi1eie1#

从结果中跳过可以使用的行数 skip() 功能与 take() “雄辩的查询生成器”上的函数。那就打电话 get() 为了得到结果。
skip(n) // n = number of rows to be skipped take(m) // m = number of rows need to be take after the skip 在这种情况下'm=所有行数-n'
可能的解决方案

return  CategoryActivity::sortByDesc("priority")->skip(5)->take(
    CategoryActivity::sortByDesc("priority")->count() - 5
)->get();
baubqpgj

baubqpgj2#

似乎你基本上需要一个显示更多分页功能。
您可以使用->take(5)在第一次页面加载中加载前五条记录,并可以在您的视图blade文件中显示。
然后,使用js在单击按钮时使用ajax请求异步加载其他记录就很好了。
在ajax请求中,可以设置next records limit。可以使用->skip(5)跳过前五个

7ivaypg9

7ivaypg93#

您可以考虑laravel的默认分页功能。看到这里了吗
或者您可以创建一个路由,比如/categories?page=3,它将页面作为url查询,并执行;

$page = $request->query['page'];
$pageSize = 5;
$categories = CategoryActivity::all()->sortByDesc("priority")->offset($pageSize*($page-1))->limit($pageSize);

不过,我还是推荐页码。

相关问题