sestrenskyi / orm
Bitrix ORM 扩展
dev-master
2019-10-12 12:35 UTC
Requires
- php: ^7.0.0
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-12 23:46:46 UTC
README
Bitrix ORM DataManager 扩展
包缓存数据,因此如果在表中添加新列,则无需手动清理缓存
如何使用此包?
如果您不需要设置关系,示例:
<?php namespace VS\ProjectName\Models; use VS\Orm\Data\DataManager; use Bitrix\Main\Loader; use Bitrix\Main\ORM\{ Fields\IntegerField, Fields\FloatField, Fields\BooleanField, Fields\Relations\ManyToMany, Fields\StringField, Fields\DatetimeField, Fields\TextField, Fields\Relations\Reference, Query\Join }; if(!Loader::includeModule('main')) { return; } class BitrixProductRowTable extends DataManager { public static function getTableName() { return 'b_crm_product_row'; } /** * @return mixed */ public static function getMap() { return self::getMysqlMap(self::getTableName()); } }
如果您想设置关系,示例:
<?php namespace VS\ProjectName\Models; use VS\Orm\Data\DataManager; use Bitrix\Main\Loader; use Bitrix\Main\ORM\{ Fields\IntegerField, Fields\FloatField, Fields\BooleanField, Fields\Relations\ManyToMany, Fields\StringField, Fields\DatetimeField, Fields\TextField, Fields\Relations\Reference, Query\Join }; if(!Loader::includeModule('main')) { return; } class BitrixProductRowTable extends DataManager { public static function getTableName() { return 'vs_crm_product_row'; } /** * @return mixed */ public static function getMap() { global $USER; $arMap = self::getMysqlMap(self::getTableName()); $arMap['OWNER_TYPE']->configureDefaultValue('D'); $arMap['CREATED_BY']->configureDefaultValue($USER->GetID()); $arMap['CREATED_AT']->configureDefaultValue(new DateTime()); $arMap['UPDATED_AT']->configureDefaultValue(new DateTime()); $arRelations = [ 'CREATED'=>new Reference( 'CREATED', \Bitrix\Main\UserTable::class, array('=this.CREATED_BY' => 'ref.ID') ), 'CATALOG_GROUP'=>new Reference( 'CATALOG_GROUP', \Bitrix\Catalog\GroupTable::class, array('=this.CATALOG_GROUP_ID' => 'ref.ID') ) ]; return array_merge($arMap, $arRelations); } }