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

Laravel 7如何实现编辑页按字母顺序跳转上下条用户记录?

功能实现方案

你现有代码的核心问题是筛选条件仍使用ID,和排序依据的nombre字段不匹配,无法实现按字母顺序跳转上下条记录的需求,修正逻辑如下:

第一步:修改模型上下条查询方法

// In User Model
public function next()
{
    // 优先按nombre字段升序筛选,重名时用id做二次区分避免跳转异常
    return User::where('nombre', '>', $this->nombre)
        ->orWhere(function ($query) {
            $query->where('nombre', $this->nombre)
                  ->where('id', '>', $this->id);
        })
        ->orderBy('nombre', 'asc')
        ->orderBy('id', 'asc')
        ->first();
}

public function previous()
{
    // 优先按nombre字段降序筛选,重名时用id做二次区分避免跳转异常
    return User::where('nombre', '<', $this->nombre)
        ->orWhere(function ($query) {
            $query->where('nombre', $this->nombre)
                  ->where('id', '<', $this->id);
        })
        ->orderBy('nombre', 'desc')
        ->orderBy('id', 'desc')
        ->first();
}

第二步:对应业务逻辑调整

  • 保存用户后,直接调用当前用户实例的next()方法,存在下一条记录就跳转至该用户的编辑页,不存在则跳转回用户列表页
  • 编辑页的上/下一条按钮,先判断previous()/next()返回值是否存在,不存在则将按钮置灰不可点击

注意:如果你的数据库nombre字段排序规则为区分大小写的类型,建议调整为utf8mb4_general_ci这类不区分大小写的排序规则,否则会出现大写字母开头的用户名全部排在小写前面的异常

内容的提问来源于stack exchange,提问作者Alexander Cuestas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:39:05