Установка дополнительных параметров для фильтра при вызове связи сущности ORM
Как известно в ORM LiveStreet CMS есть возможность указывать связи для сущности:
После этого из сущности будет доступен метод:
который получит многие сущности ModuleTest_EntityTest по столбцу таблицы rel_row_id, который указывает на примари ключ текущей сущности. Это стандартная запись.
Возникла задача добавить дополнительные параметры в эту запись и оказалось что такой возможности нет.Тикет на гите я уже оформил по этому поводу В новой версии лс для связей has_many данная проблема решена, осталось искать решение для текущей 1.0.3 версии лс.
Можно указывать дополнительный фильтр в самом вызове метода для связи:
Таким образом будут получены сущности с использованием дополнительного условия в WHERE выражении:
Примечание: данное поведение может казаться логичным т.к. вызовы из модуля ОРМ ведут себя аналогично — позволяют указывать дополнительные параметры для фильтра, но в случае связей хотелось бы параметры в объявлении связей.
Надеюсь, кому-то эта статья оказалась полезной.
Это кросспост из гида по лс.
/* * Связи сущности */ protected $aRelations = array( /* * tip: сущности записывать в полном формате */ 'link_name' => array(EntityORM::RELATION_TYPE_HAS_MANY, 'ModuleTest_EntityTest', 'rel_row_id'), );
После этого из сущности будет доступен метод:
$oEntity->getLinkName()
который получит многие сущности ModuleTest_EntityTest по столбцу таблицы rel_row_id, который указывает на примари ключ текущей сущности. Это стандартная запись.
Проблема
Возникла задача добавить дополнительные параметры в эту запись и оказалось что такой возможности нет.
Решение
Можно указывать дополнительный фильтр в самом вызове метода для связи:
$oEntity->getLinkName(array('status' => 2))
Таким образом будут получены сущности с использованием дополнительного условия в WHERE выражении:
... AND `status` = 2
Примечание: данное поведение может казаться логичным т.к. вызовы из модуля ОРМ ведут себя аналогично — позволяют указывать дополнительные параметры для фильтра, но в случае связей хотелось бы параметры в объявлении связей.
Надеюсь, кому-то эта статья оказалась полезной.
Это кросспост из гида по лс.
0 комментариев