0
우리는 두 가지 모델이 있습니다페이지를 매기는
- SimpleModel (ID, 국가 코드)
- ComplexRelatedModel (ID, 이름, 주소)
SimpleModel 많은 ComplexRelatedModel있다 다음
class Product extends Model
{
protected $fillable = [
'name'
];
/* hasOne */
public function complexRelatedChild()
{
return $this->hasOne(self::class, 'parent_id', 'id');
}
}
우리가 할 경우
$simples = SimpleModel
->with('complexRelatedChild')
->simplePaginate(100000 /* a lot! */);
그리고 우리가 필요로하는 단지
foreach ($simples as $simple) {
echo $simple->complexRelatedChild->name;
}
모든 ComplexChild이 hydratated 준비하고있다을한다. 제 경우에는 많은 기억이 필요합니다. 그리고 모델의 기능이나 기능이없는 필드 하나만 있으면됩니다.
관련 개체의 일부 데이터 필드를 사용하거나 능숙하지 않을 수도 있습니다.
덕분에 당신의 응답에 대한 많은을 documentation를 참조하십시오. 위대한 솔루션, 당신은 나를 잘 이해합니다. (내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다). 이것이 최상의 솔루션이라고 생각한다면 대단한 것입니다. 나는 당신이 더 좋은 것을 가지고 있습니다. P 클라이언트는 모든 데이터를 얻고 indexDB를 하루에 한 번씩 sincronize하기 때문에 총 자원이 필요합니다. 페이징하면 클라이언트가 페이지 당 페이지를 가져와야합니다. – pablorsk
@pablorsk : 시도 할 수있는 다른 옵션으로 답변을 업데이트했습니다. 행운을 빕니다! –
업데이트로 내 문제를 해결하십시오! 나쁜 측면은 다시 SQL 요청을 만드는 것입니다. 그러나 사용 된 메모리는 30 %에 불과합니다. – pablorsk