Страница 1 из 1

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

Добавлено: 2018.08.11, 23:26
Maxim Glushko
Что я делаю не так?

Есть в модели 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'];
}
Как бы это сделали люди в шляпах?

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

Добавлено: 2018.08.12, 00:05
andku83

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

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

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

Добавлено: 2018.08.12, 00:08
Maxim Glushko
Вот жеж блин ))
У вас шляпа есть?
Почему без авы?

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

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