我幾乎在每一頁都使用當前通過身份驗證的用戶Auth::user()
對象。我的users
表has manypolls
。在Laravel 5.2上的Auth :: user()中進行快速加載
現在每次我想接收我的用戶的相關民意調查Auth::user()->polls
Laravel將對數據庫執行查詢。
有沒有辦法讓 - 或注入一個地方 - Auth::user()
對象Eager Loading的相關民意調查和其他相關的東西?
我幾乎在每一頁都使用當前通過身份驗證的用戶Auth::user()
對象。我的users
表has manypolls
。在Laravel 5.2上的Auth :: user()中進行快速加載
現在每次我想接收我的用戶的相關民意調查Auth::user()->polls
Laravel將對數據庫執行查詢。
有沒有辦法讓 - 或注入一個地方 - Auth::user()
對象Eager Loading的相關民意調查和其他相關的東西?
Auth::user()
函數每次使用時都返回相同的用戶對象。它不會每次都返回數據庫以再次獲取用戶。
因此,您第一次調用Auth :: user() - >民意調查時,它會查詢數據庫以獲得他們的民意調查。然後,在您稱之爲其他時間的情況下,您將從對象中檢索投票(對象將投票數據保存在其模型中)。所以這可能不是一個大問題,因爲無論您使用多少次,它只需要一次數據庫調用即可獲得投票。
要回答你將如何做到這一點的問題:Auth
外觀返回類Illuminate\Auth\Guard
的對象。您需要創建一個擴展該類的新類,然後覆蓋user()
方法以通過民意調查檢索用戶。您可以查看該課程以瞭解更多關於它是如何工作的,泰勒非常善於評論代碼並向您展示發生了什麼,因此您可以根據需要進行更改。
感謝您的回答!確實,該對象在調用一次之後擴展爲'polls'屬性。 – nipeco