求大神帮看一下orderBy为什么会失效

字段什么的都没有问题,但是orderBy就是不生效

    public function index(Request $request)
    {
        $articles = tap(Article::latest(), function ($query) use ($request) {
            if ($request->filled('title')) {
                $query->where('title', 'like', "%{$request->title}%");
            }

            if ($request->filled('cate_id')) {
                $query->where('cate_id', $request->cate_id);
            }

        })->orderBy('sort','desc')->orderBy('id', 'desc')->with(['user', 'category'])->paginate();

        return view('backend.article.index', compact('articles'));
    }
一个偏向心理学即将转向产品的码农
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

看下是不是因为这个

Article::latest()
2年前 评论
working (楼主) 2年前
风吹过有夏天的味道 (作者) 2年前
working (楼主) 2年前
讨论数量: 17

'sort desc'??

2年前 评论
working (楼主) 2年前
王大牛 (作者) 2年前
working (楼主) 2年前

看下是不是因为这个

Article::latest()
2年前 评论
working (楼主) 2年前
风吹过有夏天的味道 (作者) 2年前
working (楼主) 2年前

原生sql打印出来看看

2年前 评论
working (楼主) 2年前
bluememory (作者) 2年前
working (楼主) 2年前

你把sort变成sort1,看下报错的sql,然后去执行就知道啦

2年前 评论

Article::latest()调用的是Illuminate\Database\Eloquent\Builder::latest()

最后的sql大致为

select * from Article order by `created_at` desc, `order` desc, `id` desc limit 0, 10
2年前 评论

谢谢各位解答,一人一个小赞,不成敬意,哈哈哈

2年前 评论

latest()是罪魁祸首哈哈哈

2年前 评论
working (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!