ORM

#
Re: ORM
Цитата:
Заметил, что find() не находит элемент, точнее как-бы находит, но его свойства пустые и также что интересно id соответствует , а findAll() находит.
С shop_item такая же история

так и не исправлено
в файле modules/core/orm.php в функции find() есть ошибка: $this->setValues($this->_modelColumns + $aCurrent);
Цитата:
Оператор + возвращает левый массив, к которому был присоединен правый массив. Для ключей, которые существуют в обоих массивах, будут использованы значения из левого массива, а соответствующие им элементы из правого массива будут проигнорированы.

соответственно, при попытке поиска через find(), возвращается объект с пустыми полями
видимо должно быть так:

$this->setValues(array_merge($this->_modelColumns + $aCurrent));
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: ORM
А еще более правильно, видимо, будет:

$this->setValues(array_merge($this->_modelColumns , $aCurrent));
?
ARTatom
Модератор
#
Re: ORM
artatom,
EugenyP,
ваши предложения не верны, т.к. при его использовании измененные данные при сохранении будут потеряны.
если вы хотите использовать find() с условиями, то до установки условий вызовите clear()
$oInformationsystem_Items = Core_Entity::factory('informationsystem_item');
$oInformationsystem_Items
   ->clear()
   ->queryBuilder()
   ->where('informationsystem_id', '=', 1)
   ->where('name', '=','NVIDIA готовит 55-нм версию G92 для схватки с AMD RV770?');
$oInformationsystem_Item = $oInformationsystem_Items->find();

var_dump($oInformationsystem_Item->id);
var_dump($oInformationsystem_Item->name);
#
Re: ORM
почему тогда при findAll не нужно использовать clear()?

И каким образом find должен влиять на сохранение данных?
HostDev.pw - модули для HostCMS, Telegram: @hostdev
Модератор
#
Re: ORM
EugenyP писал(а):
почему тогда при findAll не нужно использовать clear()?

Потому что findAll возвращает новые найденные объекты, find возвращает текущий объект.

EugenyP писал(а):
И каким образом find должен влиять на сохранение данных?

Ленивая загрузка, данные заменены, но из базы еще не были загружены.
#
Re: ORM
Вопрос про find() закрыт.
HostDev.pw - модули для HostCMS, Telegram: @hostdev
Модератор
#
Re: ORM
EugenyP,
ответы и разъяснения даны в онлайн чате.
#
Re: ORM
Допускается создание своих колонок в существующих таблицах?
HostDev.pw - модули для HostCMS, Telegram: @hostdev
Модератор
#
Re: ORM
EugenyP,
допускается, обновление не удаляет пользовательские поля из таблиц.
#
Re: ORM
получаю товары из магазина

$oShop = Core_Entity::factory('Shop', 5);
$aShop_Items = $oShop->Shop_Items->findAll();

у товара в "дополнительных свойствах" есть поле "Ссылка для перехода из формы"
как мне его извлечь у товара $aShop_Item
Авторизация