2014-06-17 79 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

相關問題