1
我知道我可以渴望或懶惰加載Laravel的關係。我也知道,關係對象是變相的基本查詢對象,並調用執行$user->load('teams')
該查詢,並將其添加到$用戶對象(即使我不知道究竟怎麼了。)我可以在Laravel中加載屬性嗎?
說我有一個User
誰從評論中獲得積分。如果我想加載它們一次全部
SELECT `user_id`, sum(`points`) AS `total_points` FROM `user_comments` where `id` = ?
,我會運行此查詢:爲了讓用戶點一個數據庫調用,我將執行這樣的事情
SELECT `users`.*, sum(`user_comments`.`points`) AS `total_points`
FROM `users` LEFT JOIN `user_points` ON `users`.`id` = `user_comments`.`user_id`
GROUP BY `users`.`id`
我想使用Laravel完成這些任務。我會像向寫這樣的事情
User::where('age', '>', 40)->with('total_points')->get();
和訪問這樣
$user->total_points
價值的同時加載用戶和他們的總分。我期望可能有許多記錄,並且不希望每次有用戶時總是調用數據庫連接查詢。如果我只需要他們的總分值,我也不希望爲每個用戶加載所有評論。
有沒有一種方法可以在Laravel中使用關係生成器來完成此操作?
這工作!一旦我得到了這個工作,我添加了一個$ appends屬性來檢查關係是否已加載並獲取該值。 – whiterook6
但是,如果它是一個屬性是不可能的!我必須爲此做些什麼? – shmoolki