我有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
答案 0 :(得分:2)
您可以考虑Laravel的默认分页功能。 see here
或者您可以创建一条/ categories?page = 3这样的路由,该路由将页面作为URL查询并执行;
$page = $request->query['page'];
$pageSize = 5;
$categories = CategoryActivity::all()->sortByDesc("priority")->offset($pageSize*($page-1))->limit($pageSize);
不过我还是推荐。
答案 1 :(得分:1)
看来您基本上需要显示具有分页功能的更多功能。
您可以使用-> take(5)在首次页面加载中加载前五个记录,并可以显示在视图刀片文件中。
然后最好使用JS在单击按钮时以ajax请求异步加载其他记录。
在ajax请求中,您可以设置下一个记录限制。并且可以使用-> skip(5)
跳过前五个答案 2 :(得分:0)
要从结果中跳过行数,可以在'Eloquent Query Builder'上使用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();