【问题标题】:Order by Laravel EloquentLaravel Eloquent 订购
【发布时间】:2019-09-10 20:07:53
【问题描述】:

我想知道如何通过在 DESC 创建的followers() 订购以下产品。我认为将 orderBy 添加到该查询将按 $user 排序?

$followers = $user->followers()->limit(12)->get();

如果对我有帮助,我正在使用包 https://github.com/rennokki/befriended 并尝试按关注者的创建日期排序。

我尝试了以下许多建议。但是通过添加以下内容使其正常工作。

$followers = $user->followers()->orderBy('pivot_created_at', 'desc')->limit(12)->get();

【问题讨论】:

  • 你可以在用户模型中的followers()中添加orderBy
  • 那么,您只希望单个用户的关注者按创建日期排序?
  • 您使用以下查询如果您的意思只是让“一个”用户的关注者订购 descandent:$user->followers()->orderBy('created_at', 'DESC')->limit( 12)->get();

标签: laravel eloquent


【解决方案1】:

请试试这个:

$followers = $user->followers()->orderBy('created_at', 'DESC')->limit(12)->get()

【讨论】:

    【解决方案2】:

    Eloquent 有日期过滤器,例如 oldest()latest()

    $followers = $user->followers()->latest()->limit(12)->get();
    

    【讨论】:

      【解决方案3】:

      因为它是一种多态关系,所以我使用以下方法使其工作。

      $followers = $user->followers()->orderBy('pivot_created_at', 'desc')->limit(12)->get();
      

      【讨论】:

        【解决方案4】:

        您还可以将默认顺序添加到关系中。 只需将->orderBy('yourColumn') 添加到您的方法中即可。

        例子:

            public function county()  {
                return $this->hasMany('\App\County')->orderBy('name');
            }
        

        【讨论】:

          猜你喜欢
          • 2014-11-25
          • 2019-07-18
          • 2015-01-27
          • 2020-09-08
          • 2017-07-05
          • 2021-08-30
          • 1970-01-01
          • 2023-04-08
          • 2015-07-13
          相关资源
          最近更新 更多