그래서 을 포함하는 Subject
이 있는데, 여기에는 Question
이 포함되어 있습니다. 모든 질문마다 답이 있습니다. 답변을 모두 Stack
에 포함 시키려고합니다.하지만 막혀 있습니다. 열정적으로로드 된 관계에서의 반환 횟수 Laravel
이
내가 많은 솔루션 중 하나는 내가 만지작되었습니다 할 노력하고있어 무엇 :$subjects = Subject::with(['stack.question', 'stack.answersCount'])->get();
return $subjects;
Subject
모델은 다음과 관련이있다 : 우리가 보면
public function stack(){
return $this->hasMany(Stack::class);
}
을 그리고 그 관계가 어떻게 형성되는지에 관한 모델 :
public function question(){
return $this->hasMany(Question::class);
}
public function answers(){
return $this->hasMany(Answers::class);
}
public function answersCount(){
return $this->answers()->selectRaw('answer, count(*) as aggregate')->groupBy('answer');
}
하지만 return $subjects
일 때 answer_count
이 비어 있습니다.
"answers_count": []
SQL에서 동일한 쿼리를 실행할 때 비어있는 결과가 나오기 때문에 매우 혼란 스럽습니다.
어떻게 모든 대답을 계산할 수 있습니까? 그룹으로 묶어?
로 보인다 대안이지만, 어떻게 든 설명했듯이 카운트를 가져올 수 있습니까? 그것은 그것을하는 아주 청결한 방법 같이 보인다. 그리고 왜 그것이 작동하지 않는지 나는 이해할 수 없다. – Adam
나는 그것을 잘 보았을 필요가있다. –
예 테스트를 마쳤습니다. 이제 블레이드 파일에서이 개념을 사용하고 있지만, 이것은 n + 1 문제입니다. 이것은 웅변적인 버그입니까? – Adam