Вопрос по ORM
Решил попробовать LSный ORM, возник вопрос сразу по получению сущности
Есть нарпример таблица news и поле в ней news_id
Как вызвать выборку сущности по id? Т.е.
LS::E()->News_GetNewsByNews_Id(1);
Не работает, в силу того, что в __call() делается explode по "_" а механизма маппинга полей в базе я не нашел.
Или ORM диктует систему наименования полей в базе и просто интегрировать не получится?
Есть нарпример таблица news и поле в ней news_id
Как вызвать выборку сущности по id? Т.е.
LS::E()->News_GetNewsByNews_Id(1);
Не работает, в силу того, что в __call() делается explode по "_" а механизма маппинга полей в базе я не нашел.
Или ORM диктует систему наименования полей в базе и просто интегрировать не получится?
11 комментариев
$this->News_GetNewsByNewsId(1);
И писать мне надо $this->News_GetNewsByNews_id(1);'
Но тогда обработчик __call() неверно распознает вызов
У всех полей должен быть префикс — имя сущности. Например: entity_id, entity_name. И вызываются они все так: GetEntityById(), GetEntityByName().
Проверь еще в ините модуля — parent::init();
Весьма неудобно, кстати, я почитал код мельком, посмотрел запросы которые он генерирует и как я понял префикс может быть либо именем сущности, либо отсутствовать, кастомный задать не получится, если по нему получать сущность вышеописанным способом, только через relations etc.
Почитать еще надо обертки __call() как-то они сильно потолстели с появлением ОРМ, или мне кажется )
А я тут уже нашел функцию MapperORM::GetByFilter() и через нее запилил =)
Спасибо за помощь, друзья!
файл classes/actions/ActionSettings.class.php
setProfileCity — это типичный сеттер для этого же поля есть и геттер)
Описывается (т.к. $this->oUserCurrent=$this->User_GetUserCurrent(); вызов уходит в модуль User ) он в этом файле classes/modules/user/entity/User.entity.class.php
Вот так:
user_profile_city — это и есть поле в таблице
Работа с базой на уровне SQL запросов вынесена в маппер classes/modules/user/mapper/User.mapper.class.php
Работа с полями профиля в методах Add и Update
Чуть сумбурно описал, но суть я думаю ясна.
С сабжем уже разобрались, спасибо Орт'у и всем за отклк