Laravel에서 열심히 또는 게으른 관계를로드 할 수 있음을 알고 있습니다. 또한 관계 객체가 변장 기본적으로 쿼리 객체가 있음을 알고, $user->load('teams')
를 호출하면 해당 쿼리를 실행하고 $ 사용자 개체에 추가하는 (내가 아는 방법을 정확하게하지 않는 경우에도 마찬가지입니다.)Laravel에서 속성을 eager/lazy 로딩 할 수 있습니까?
가 나는 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
같은 값에 액세스합니다. 나는 많은 레코드가있을 것이며 항상 사용자가있을 때마다 DB join 쿼리를 호출하고 싶지 않습니다. 또한 전체 점수 값만 필요하면 각 사용자마다 모든 주석을로드하지 않는 것이 좋습니다.
Laravel에서이를 수행하기 위해 관계 작성기를 사용할 수있는 방법이 있습니까?
에서이 작업을 수행! 일단 내가 그 작업을 얻었다면, $ appends 속성을 추가하여 관계가로드되고 값을 획득했는지 확인합니다. – whiterook6
하지만 속성 일 경우 가능하지 않습니다! 이걸 위해 내가해야 할 일은 무엇입니까? – shmoolki