Основные функции ORM Bitrix D7

В папке /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']);

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *