Внебазовый параметр модели

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Maxim Glushko
Сообщения: 72
Зарегистрирован: 2017.04.24, 19:16
Откуда: Україна, Одеса

Внебазовый параметр модели

Сообщение Maxim Glushko » 2018.08.11, 23:26

Что я делаю не так?

Есть в модели public $has_children, такого поля в таблице db нет.

При обращении к базе:

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

->addSelect(['has_children' => '(select count(id) from contents c2 where c2.parent_id=c.id)'])
Потом переделываю в массив:

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

$contents = ArrayHelper::toArray($contents);
И вуаля! - 'has_children' в массиве нет, хотя в вардампе извлечённых данных был. Но был не в атрибутах, а особнячком.
Приходится выкручиваться, но мне этот вариант не видится изящным:

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

$contents2 = ArrayHelper::toArray($contents);
foreach ($contents2 as $i => $с) {
    $contents2[$i]['has_children'] = $contents[$i]['has_children'];
}
Как бы это сделали люди в шляпах?

andku83
Сообщения: 808
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Внебазовый параметр модели

Сообщение andku83 » 2018.08.12, 00:05

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

    ->addSelect(['has_children' => '(select count(id) from contents c2 where c2.parent_id=c.id)'])
    ...
    ->asArray()
    ->all();
при такой конструкции он там должен быть даже при отсутствии:
public $has_children

Аватара пользователя
Maxim Glushko
Сообщения: 72
Зарегистрирован: 2017.04.24, 19:16
Откуда: Україна, Одеса

Re: Внебазовый параметр модели

Сообщение Maxim Glushko » 2018.08.12, 00:08

Вот жеж блин ))
У вас шляпа есть?
Почему без авы?

andku83
Сообщения: 808
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Внебазовый параметр модели

Сообщение andku83 » 2018.08.12, 01:33

Нема.
Без шляпы ава не ава))
Через неделю буду в Одессе можете подарить ;)

Ответить