douzui6173 2014-06-17 04:39
浏览 157
已采纳

Laravel 4:如何从与orderBy的多对多关系中的表中获取数据?

I have two tables related with a many-to-many relationship by a pivot table, conversations_user. I have this working fine in my controller :

Controller

public function create()
    {
        $loginuser = User::find(Auth::user()->id);
        $user_id = $loginuser->id;
        $conversations = $loginuser->conversations;
        return View::make('brightcms.Conversations.Conversations',array('user_id'=>$user_id,'conversations'=>$conversations));
    }

Now I want to get the conversations arranged in descending order according to a created_at column in the conversations table + reverse() . I tried :

$conversations = $loginuser->conversations->orderBy('created_at','desc')->get()->reverse();

but it returns an error message. Thank you!


  • 写回答

1条回答 默认 最新

  • dongwuqi4243 2014-06-17 05:00
    关注

    If you would like you can lazy eager load in the conversations in the order you wish

    public function create()
    {
        $loginuser = Auth::user();
        $loginuser->load(['conversations' => function($q)
        { 
            $q->orderBy('created_at', 'desc'); 
        }]);
        View::make('....', ['user' => $loginuser]);
    }
    
    $user->conversations; // your ordered conversations collection
    

    If you already have the collection you can sortBy or sortByDesc. Though as mentioned you have access to reverse on a collection if it is in order but you just want it reversed.

    Eager Loading w/ Constraints

    Collection Methods

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题