Таблица ORM - amel-post/bitrix.help GitHub Wiki
<?php
CModule::AddAutoloadClasses(
'',
array(
'AddressesTable' => '/local/php_interface/include/personal/addresses_table.php'
)
);
<?php
use Bitrix\Main\Entity;
use Bitrix\Main\Application;
use Bitrix\Main\Entity\Event;
use Bitrix\Main\Loader;
use Bitrix\Main\Type\DateTime;
class CommentsTable extends Entity\DataManager
{
public static $authors = array(
'client' => 'Клиент', 'manager' => 'Менеджер'
);
public static function getTableName()
{
return 'ampir_multibasket_comments';
}
public static function getMap()
{
return array(
new Entity\IntegerField(
"ID",
array("primary" => true, 'autocomplete' => true,)
),
new Entity\IntegerField(
"BASKET_ID"
),
new Entity\IntegerField(
"USER_ID"
),
new Entity\TextField(
"TEXT"
),
new Entity\EnumField(
"AUTHOR", array(
'values' => array_keys(static::$authors),
'default_value' => 'client'
)
),
new Entity\DatetimeField(
"DATE_CREATE",
array(
'default_value' => new DateTime()
)
),
);
}
public static function add(array $data)
{
$data['BASKET_ID'] = MultiBasketUser::getInstance()->getBasketId();
$data['USER_ID'] = MultiBasketUser::getInstance()->getUser()->GetID();
return parent::add($data);
}
public static function addRequest(array $data)
{
$data['BASKET_ID'] = 0;
$data['USER_ID'] = MultiBasketUser::getInstance()->getUser()->GetID();
return parent::add($data);
}
public static function installDB()
{
$connection = Application::getInstance()->getConnection();
if (!$connection->isTableExists(self::getTableName()))
{
self::getEntity()->createDbTable();
}
}
public static function uninstallDB()
{
$connection = Application::getInstance()->getConnection();
if ($connection->isTableExists(self::getTableName()))
{
$connection->dropTable(self::getTableName());
}
}
public static function onBeforeAdd(Event $event)
{
}
public static function onAfterAdd(Event $event)
{
}
}