在我的编辑表单中,我想添加一个按钮来保存和编辑以下用户。
我正在尝试按“下一步”按钮按字母顺序转到下一条记录。
我只能按ID排序
// In a model
public function next(){
return User::where('id', '>', $this->id)->orderBy('nombre','asc')->first();
}
public function previous(){
return User::where('id', '<', $this->id)->orderBy('nombre','desc')->first();
}发布于 2021-10-05 05:37:45
需要使用mysql的rank函数和raw查询
对于上一条记录
\DB::select('SELECT * FROM (SELECT RANK() OVER (ORDER BY nombre ASC) ranking, users.* FROM `users`) user where ranking < {previous_record_rank} ORDER BY ranking asc limit 1;');对于下一条记录
\DB::select('SELECT * FROM (SELECT RANK() OVER (ORDER BY nombre ASC) ranking, users.* FROM `users`) user where ranking > {previous_record_rank} ORDER BY ranking asc limit 1;');并且需要在config/database.php中将mysql.strict设置为false
或
\DB::statement("SET SQL_MODE=''");https://stackoverflow.com/questions/69445020
复制相似问题