Кто-нибудь знает, есть ли в Yii ActiveRecord функция, помогающая нам предотвращать запросы N+1?
В приведенном ниже примере нам нужно получить документы от людей и отобразить в представлении имена людей и их список документов. Если я использую $model->findAll([...]); что-то вроде кода ниже:
<?php foreach( $people as $person ): ?>
<li><?= $person->name</li>
<li>
<ul>
<?php foreach( $person->documents as $document ): ?>
<li><?= $document->number; ?></li>
<?php endforeach; ?>
</ul>
</li>
<?php endfoeach; ?>
Yii будет запрашивать базу данных много раз. В ActiveRecord Ruby on Rails есть метод включения, в котором мы можем использовать что-то вроде: People.includes('documents').
Таким образом, ActiveRecord делает запросы менее тяжелыми для получения обоих объектов.
Кто-нибудь знает что-нибудь об этом?