【问题标题】:Laravel: OrderBy the paginated Eloquent relationship resultLaravel:OrderBy 分页的 Eloquent 关系结果
【发布时间】:2016-06-15 04:24:58
【问题描述】:

我的应用程序使用 Laravel 5.2

我有两个模型:Links 和 Affiliates。它们之间的关系是:Link hasMany Affiliates。 当我想要链接的附属公司时,我想对结果进行分页,这可以按预期工作,但我也想按结果排序。我该怎么做?

这就是我当前的代码:

$affiliates = $link->affiliates->paginate(50, ['*'], 'p')->orderBy('created_at', 'desc')->orderBy('visitor_ip', 'desc');

谢谢!

【问题讨论】:

    标签: php pagination laravel-5.2


    【解决方案1】:

    这样的事情应该可以工作:

    $affiliates = Affiliate::where('link_id', $id)->orderBy('created_at', 'desc')->orderBy('visitor_ip', 'desc')->paginate(50, ['*'], 'p');
    

    【讨论】:

    • 结果:BadMethodCallException,方法 orderBy 不存在。
    • 发帖前$link =怎么用?
    • 这就是我对链接所做的: $link = Link::find($id); $subscribers = $link->subscribers()->paginate(env('SUBSCRIBERS_LIST', 50));
    • 所以,你使用了两次分页,我认为这就是问题所在。
    • 但我在两个不同的模型/结果集上使用 Paginate
    猜你喜欢
    • 2021-01-26
    • 2015-07-17
    • 2016-09-26
    • 1970-01-01
    • 2013-01-30
    • 2019-10-14
    • 1970-01-01
    • 2021-07-14
    • 2018-12-12
    相关资源
    最近更新 更多