Мультизагрузка и пропущенные ключи.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Мультизагрузка и пропущенные ключи.

Сообщение Chelobaka »

Приветствую,

У меня есть форма в которой загрузка происходит подобным образом:

Код: Выделить всё

 
for ($i = 0; $i < $items_count; $i++) {
    $items[$i] = new Form();
}
 
$loadItems = Model::loadMultiple($items, $data['items'], '');
Если придет массив индекс которого начинается не с 0 то данный loadMultiple ничего не загрузит.
Приходится делать так:

Код: Выделить всё

...
$products =  array_values($data['items']);
$loadItems = Model::loadMultiple($items, $products, '');

Посмотрел метод в Model и понял почему так. Но возможно есть более элегантное решение?

Сам метод подразумевает работу с идексами вместо spl и next();

Код: Выделить всё

        foreach ($models as $i => $model) {
            /* @var $model Model */
            if ($formName == '') {
                if (!empty($data[$i]) && $model->load($data[$i], '')) {
                    $success = true;
                }
            } elseif (!empty($data[$formName][$i]) && $model->load($data[$formName][$i], '')) {
                $success = true;
            }
        }

Ответить