You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel9中如何设置Kyslik/column-sortable指定列默认降序?

问题:Laravel9中Kyslik/column-sortable设置「最新列表」默认降序

我在Laravel9中使用Kyslik/column-sortable实现排序功能,当前有「最新列表」和「ABC」两种排序选项。希望仅将「最新列表」的默认排序设为降序,目前点击「最新列表」后URL参数为sort=created_at&direction=asc,想要改为sort=created_at&direction=desc,但不知如何操作。附上相关控制器和视图代码,请教实现方法:

控制器代码

public function company_list()
{
    $company_total = User::all();
    $users=User::sortable()->orderBy('created_at','desc')->paginate(5);
    return view('/company-list',compact('users','company_total'));
}

视图代码

<p class="companies-content__order-by-link link-asc">@sortablelink('created_at', 'New Listings')</p>
<p class="companies-content__order-by-link link-asc">@sortablelink('company_name_abc', 'ABC')</p>

解决方案

只需修改视图中「最新列表」的排序链接,给@sortablelink添加第三个参数指定默认排序方向即可:

将视图里的「最新列表」链接代码替换为:

<p class="companies-content__order-by-link link-asc">@sortablelink('created_at', 'New Listings', ['direction' => 'desc'])</p>

补充说明:

  1. 这样设置后,首次点击「最新列表」时,URL参数会自动带上direction=desc,满足需求。
  2. 控制器里的orderBy('created_at','desc')可以保留,作为页面初始加载时的默认排序逻辑,和点击链接后的默认方向保持一致。
  3. 额外优化建议:控制器中的$company_total = User::all();如果只是为了获取用户总数,改成$company_total = User::count();更高效,避免加载所有用户数据占用不必要的资源。

内容的提问来源于stack exchange,提问作者yamaguchi takumi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:35:26