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