Пакетный перебор экономит память: use yii\db\Query; $query = (new Query()) ->from('user') ->orderBy('id'); foreach ($query->batch() as $users) { // $users это массив из 100 или менее строк из таблицы пользователей } // или если вы хотите перебрать все строки по одной foreach ($query->each() as $user) { // $user представляет одну строку из выборки } Индексы при переборе сохраняются: $query = (new \yii\db\Query()) ->from('user') ->indexBy('username'); foreach ($query->batch() as $users) { // $users индексируется по столбцу "username" } foreach ($query->each() as $username => $user) { // ... }
Yii Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor