Выдано 126277 лицензий

ORM

Re: ORM
#
31gorod
Можно ли получить id модуля с name='Информационные системы' через объект 'Test_Module'?
т.е. проще всего объяснить запросом, это выглядит так
"SELECT Test_Modules.id
FROM Test_Modules, modules
WHERE modules='Информационные системы'
AND Test_Modules.module_id=modules.id";

Справился след. образом

id= Core_ORM::factory('Test_Module')->getByModule_id(Core_ORM::factory('module')->getByName('Информационные системы')->id)->id;


ПрофильЦитировать выделенное20.07.2012 17:46:06 • Сообщений: 81
Re: ORM
#
hostcms
Модератор
mpdule наш стандартный модуль? Он просто не имеет связи с Вашими модулями, поэтому через связь не получится.

ПрофильЦитировать выделенное20.07.2012 18:35:44 • Сообщений: 16287
Re: ORM
#
31gorod
Да, это ваш, стандартный) Напишите, пожалуйста, способ получения id в случае если бы модель модуля 'module' имела связь с моей моделью, как я понимаю через has many

ПрофильЦитировать выделенное20.07.2012 19:02:06 • Сообщений: 81
Re: ORM
#
hostcms
Модератор
31gorod,
так если через hasMany, то Вы получите много объектов, а не один определенный. У Вас один модуль может иметь много Test_Module?

ПрофильЦитировать выделенное20.07.2012 19:14:25 • Сообщений: 16287
Re: ORM
#
31gorod
Ошибся, связь один-к-одному т.е has one

Назрел еще вопрос. Необходимо передать в датасет все объекты модели 'module', id которых имеются в таблице 'test_modules'
запросом выглядело бы примерно так:
"SELECT *
FROM modules, test_modules
WHERE modules.id=test_modules.module_id
"
Подскажите, пожалуйста, рациональное решение

ПрофильЦитировать выделенное20.07.2012 19:54:49 • Сообщений: 81
Re: ORM
#
hostcms
Модератор
31gorod писал(а):
Напишите, пожалуйста, способ получения id в случае если бы модель модуля 'module' имела связь с моей моделью

Очень просто:
Core_Entity::factory('Module', 123)->Test_Module->id
или
Core_Entity::factory('Module', 123)->test_module_id


31gorod писал(а):
Назрел еще вопрос. Необходимо передать в датасет все объекты модели 'module', id которых имеются в таблице 'test_modules'

Датасету указываете дополнительные условия, в /admin/ сотни примеров:
$oAdmin_Form_Dataset->addCondition(
   array('where' =>
      array('forum_category_id', '=', $oForum_Category->id)
   )
)
->addCondition(
   array('select' =>
      array('forum_category_siteuser_groups.*', array('siteuser_groups.name', 'adminSiteuserGroupName'), array('siteuser_groups.description', 'adminSiteuserGroupDescription'))
   )
)
->addCondition(
   array('join' =>
      array('siteuser_groups', 'siteuser_groups.id', '=', 'forum_category_siteuser_groups.siteuser_group_id')
   )
);

индексом идет имя метода в queryBuilder, значением массив с параметрами метода.

ПрофильЦитировать выделенное20.07.2012 20:26:47 • Сообщений: 16287
Re: ORM
#
31gorod
Объясните, пожалуйста, реализацию следующего примера:
Используя объект
$testtab_edit=Core_Entity::factory('test_tab_edit');Core_Entity::factory('fieldmanager_tab_edit')
Внести в таблицу все данные полученные какой-то выборкой из другой модели
Аналог в SQL:
INSERT INTO <название таблицы> SELECT <имя столбца>,... FROM <название таблицы>

ПрофильЦитировать выделенное24.07.2012 17:30:10 • Сообщений: 81
Re: ORM
#
hostcms
Модератор
31gorod,
установить св-вам значения и вызвать save() у модели.

ПрофильЦитировать выделенное24.07.2012 17:32:12 • Сообщений: 16287
Re: ORM
#
31gorod
я имел ввиду случай с множественной выборкой

ПрофильЦитировать выделенное24.07.2012 17:54:26 • Сообщений: 81
Re: ORM
#
hostcms
Модератор
31gorod, в цикле создать модели, установить св-ва, вызвать save() для каждой модели.

ПрофильЦитировать выделенное24.07.2012 17:59:26 • Сообщений: 16287
Авторизация