2017-10-13 83 views
0

面對的問題我正在面對一個按功能劃分的問題。 我想根據國家提取記錄,結果應該從當前用戶的國家開始。laravel order by

例如。 如果auth用戶屬於印度那麼列表應該從印度開始。

我當前的代碼是

$users = User::where('status', '=',1)->with(['profile'])->latest()->orderBy('last_login', 'desc')->paginate(12); 

感謝

+1

向我們展示代碼。 –

+0

@NitishKumar問題已更新 –

+0

什麼是'last_login'?用戶表的屬性是什麼? –

回答

0

好吧,不管我的理解,你正在尋找通過country屬性的數據從profiles表,這是相對於與User型號排序,爲此你需要使用join我不確定你的結構,所以我只是給你一個例子。假設你想通過排序profiles =>id那麼你可以寫的東西:

編輯:按在註釋中給出的要求,我會建議有這樣的事情:所有的 首先讓被

有身份驗證的用戶
$AuthUser = Auth::user(); 

然後讓調用關係

$users = User::->leftJoinRelations('profile') 
    ->orderByRaw("FIELD(country , ". $AuthUser->profile->country ."), ASC") 
    ->paginate(); 

所以這樣你可以有用戶通過身份驗證的用戶國家來分類的。希望這可以幫助。

+0

plzz check DB結構 https://screenshots.firefox.com/VaxIADeu5hWwZCyI/localhost –

+0

我不想按國家排序。我想首先顯示與auth User相同的記錄。 例如,如果Auth :: user屬於india,則表中的所有記錄都應從india開始 –

+0

您的屏幕截圖未顯示profiles表的完整結構。也請提供完整的細節。我們無法幫助您提供不完整的細節。 –