dev-master 2019-10-12 12:35 UTC

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);
    }
}