Board Category 모델에 대한 Eager Loading 이 정상적으로 동작하지 않는 문제를 확인했습니다.
게시판 쪽에서 발생하는 카테고리 N + 1 문제를 해결하기 위해 작업을 진행하고 있었습니다.
일반적으로 N+1 는 with, load 문을 사용하면 쉽게 해결할 수 있는 문제라 별 고민하지 않고 작업을 진행했습니다.
하지만 제 생각과는 다른 결과가 발생했다.
쿼리 상으로는 분명히 결과 값이 있는데, 실제 relation 값에 null 이 들어가 있었습니다.
또 바로 Lazy Loading 을 통해서 값을 가져온 경우엔 정상적으로 작동하고 있었다.
Lazy Loading
$books = App\Book::all(); // (1)
foreach ($books as $book) {
echo $book->author->name; // 연관된 author 정보의 name에 접근
}
Eager Loading
$books = App\Book::with('author')->get();
foreach ($books as $book) {
echo $book->author->name;
}