面對的問題我正在面對一個按功能劃分的問題。 我想根據國家提取記錄,結果應該從當前用戶的國家開始。laravel order by
例如。 如果auth用戶屬於印度那麼列表應該從印度開始。
我當前的代碼是
$users = User::where('status', '=',1)->with(['profile'])->latest()->orderBy('last_login', 'desc')->paginate(12);
感謝
面對的問題我正在面對一個按功能劃分的問題。 我想根據國家提取記錄,結果應該從當前用戶的國家開始。laravel order by
例如。 如果auth用戶屬於印度那麼列表應該從印度開始。
我當前的代碼是
$users = User::where('status', '=',1)->with(['profile'])->latest()->orderBy('last_login', 'desc')->paginate(12);
感謝
好吧,不管我的理解,你正在尋找通過country
屬性的數據從profiles
表,這是相對於與User
型號排序,爲此你需要使用join
我不確定你的結構,所以我只是給你一個例子。假設你想通過排序profiles
=>id
那麼你可以寫的東西:
編輯:按在註釋中給出的要求,我會建議有這樣的事情:所有的 首先讓被
有身份驗證的用戶$AuthUser = Auth::user();
然後讓調用關係
$users = User::->leftJoinRelations('profile')
->orderByRaw("FIELD(country , ". $AuthUser->profile->country ."), ASC")
->paginate();
所以這樣你可以有用戶通過身份驗證的用戶國家來分類的。希望這可以幫助。
plzz check DB結構 https://screenshots.firefox.com/VaxIADeu5hWwZCyI/localhost –
我不想按國家排序。我想首先顯示與auth User相同的記錄。 例如,如果Auth :: user屬於india,則表中的所有記錄都應從india開始 –
您的屏幕截圖未顯示profiles表的完整結構。也請提供完整的細節。我們無法幫助您提供不完整的細節。 –
向我們展示代碼。 –
@NitishKumar問題已更新 –
什麼是'last_login'?用戶表的屬性是什麼? –