Да, в Bitrix Framework существует ORM (Object-Relational Mapping) - это технология, которая позволяет работать с данными в базе данных с помощью объектов и классов вместо написания SQL-запросов вручную.
Для получения массива данных определенного типа с использованием ORM в 1C-Bitrix, необходимо выполнить следующие шаги:
1. Создайте класс, который будет соответствовать таблице в базе данных. Для этого нужно создать PHP-класс, унаследованный от класса BitrixMainORMDataDataManager
. В этом классе необходимо определить информацию о таблице, такую как название таблицы, первичный ключ, поля и т.д. Например:
namespace MyAppTable; use BitrixMainORMDataDataManager; use BitrixMainORMFieldsIntegerField; use BitrixMainORMFieldsStringField; class MyEntityTable extends DataManager { public static function getTableName() { return 'my_entity'; } public static function getMap() { return [ new IntegerField('ID', [ 'primary' => true, 'autocomplete' => true, ]), new StringField('NAME', [ 'required' => true, ]), ]; } }
2. Теперь вы можете использовать созданный класс для выполнения операций с этим типом данных, таких как выборка, добавление, обновление и удаление. Например, чтобы получить массив всех элементов этого типа, вы можете использовать следующий код:
use MyAppTableMyEntityTable; $result = MyEntityTable::getList(); while ($item = $result->fetch()) { // $item - массив данных одного элемента // обрабатывайте полученные данные здесь }
Вы можете добавить дополнительные условия и сортировку к выборке, используя методы filter()
и order()
. Например:
$result = MyEntityTable::getList([ 'filter' => [ '=NAME' => 'Test', ], 'order' => [ 'ID' => 'DESC', ], ]); while ($item = $result->fetch()) { // обрабатывайте полученные данные здесь }
Таким образом, используя ORM в Bitrix Framework, вы можете получить массив данных определенного типа без необходимости писать SQL-запросы вручную. Это делает код более читабельным, поддерживаемым и безопасным, а также сокращает время разработки.