В папке /local/php_interface/lib/ClassName.php создаем экземпляр таблицы
<?php
namespace xgerasim;
use Bitrix\Main\Entity;
class ExampleTable extends Entity\DataManager
{
// название таблицы
public static function getTableName()
{
return 'example_table';
}
// колонки таблицы
public static function getMap()
{
return [
new Entity\IntegerField('ID', [
'primary' => true,
'autocomplete' => true
]),
new Entity\IntegerField('DEAL', [
'required' => true
]),
new Entity\IntegerField('PRODUCT', [
'required' => true
]),
new Entity\IntegerField('QUANTITY', [
'required' => true
]),
new Entity\IntegerField('CUSTOM_PRICE', [
'required' => true
]),
];
}
}
Далее нужно зарегистрировать класс, добавили его в событие registerAutoLoadClasses
В папку /local/php_interface/autoload.php регистрируем класс
<?php
Bitrix\Main\Loader::registerAutoLoadClasses(null, [
'xgerasim\ExampleTable' => '/local/php_interface/lib/ClassName.php',
]);
В init.php не забываем добавить этот файл в загрузку
require_once($_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/autoload.php');
Использование класса
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
use xgerasim\ExampleTable;
// создаем таблицу, если ее нет
if (!ExampleTable::getEntity()->getConnection()->isTableExists(ExampleTable::getTableName())) {
ExampleTable::getEntity()->createDbTable();
}
// удаляем таблицу
// ExampleTable::getEntity()->getConnection()->dropTable('example_table');
// Выборка элементов таблицы как массива
$exampleElems = ExampleTable::getList([
'select' => ['ID', 'DEAL', 'PRODUCT', 'CUSTOM_PRICE'],
'filter' => ['DEAL' => $dealID, 'PRODUCT' => $productId],
])->fetchAll();
Добавляем новый элемент
$result = ExampleTable::add([
'DEAL_ID' => $dealID,
'VID_RABOT' => 'Пустая строчка',
]);
if ($result->isSuccess()) {
$success[] = 'Добавлена новая строчка ' . $action;
}
Редактируем элемент
$result = ExampleTable::update($exampleElems[0]['ID'], ['DEAL_ID' => '555']);