2014-06-17 131 views
0

我有一个枢轴 table,conversations_user与多对多关系相关的两个表。我在我的控制器此工作的罚款:Laravel 4:如何从orderBy与多对多关系中的表中获取数据?

控制器

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)); 
    } 

现在我想根据在对话一created_at列的表+反向得到降序排列的谈话()。 我想:

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

但它返回一个错误信息。谢谢!


+0

你有什么错误? –

+0

$ conversations = $ loginuser-> conversations-> orderBy('created_at','desc') - > get();没关系?如果你只是想降序谈话表。你的'reverse()'工作是什么? –

回答

1

如果你想,你可以在命令对话懒惰贪婪加载你想

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 

如果您已经有收集,您可以sortBysortByDesc。虽然如上所述,如果收集的是集合中的reverse,但您只是希望将其颠倒过来,则可以访问reverse

Eager Loading w/ Constraints

Collection Methods

+0

非常感谢你的队友!欣赏它。 :) – Mark

相关问题