PHPackages                             strong/bitrix-models - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. strong/bitrix-models

ActiveLibrary

strong/bitrix-models
====================

0.9.3(3y ago)090MITPHPPHP &gt;=8.1

Since Apr 12Pushed 3y agoCompare

[ Source](https://github.com/Strong/bitrix-models)[ Packagist](https://packagist.org/packages/strong/bitrix-models)[ Docs](https://github.com/Strong/bitrix-models)[ RSS](/packages/strong-bitrix-models/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (5)Versions (4)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/1e450a3b2525c341e6a2715788496be4fd5f5071a312b7619441c93ce5a1e3ff/68747470733a2f2f706f7365722e707567782e6f72672f67653169306e2f6269747269782d6d6f64656c732f762f737461626c652e737667)](https://packagist.org/packages/ge1i0n/bitrix-models/)[![Total Downloads](https://camo.githubusercontent.com/a55bbda6e4565beef6c14c984c71bd4f4360fb01f6a8af4fddae4d804a9ca924/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f67653169306e2f6269747269782d6d6f64656c732e7376673f7374796c653d666c6174)](https://packagist.org/packages/ge1i0n/bitrix-models)

Bitrix models
=============

[](#bitrix-models)

Вступление
----------

[](#вступление)

Данный пакет привносит Model Layer в Битрикс. Этот слой логически состоит из двух частей:

1. Модели для сущностей битрикса (в дальнейшем будем называть их "Битрикс-модели") работающие внутри через API Битрикса (`CIBlockElement` и т д) и представляющие собой надстройку над ним. С внешней же стороны эта надстройка напоминает `Eloquent`.
2. Модели для произвольных таблицы работающие через `illuminate/database` в целом и `Eloquent` в частности.

Установка
---------

[](#установка)

1. `composer require strong/bitrix-models`
2. Регистрируем пакет в `init.php` - `Arrilot\BitrixModels\ServiceProvider::register();`

Использование моделей Bitrix
----------------------------

[](#использование-моделей-bitrix)

Для наследования доступны следующие модели:

```
Arrilot\BitrixModels\Models\ElementModel
Arrilot\BitrixModels\Models\SectionModel
Arrilot\BitrixModels\Models\UserModel
Arrilot\BitrixModels\Models\D7Model
```

Для пример далее везде будем рассматривать модель для элемента инфоблока (ElementModel). Для других сущностей API практически идентичен.

> ElementModel полноценно поддерживает только инфоблоки второй версии (та что хранит свойства в отдельных таблицах). С первой версией некоторые моменты могут не работать должным образом из-за особенностей работы CIBlockElement::GetList(). Самая большая проблема: Если в инфоблоке есть множественные свойства, то запросы с limit(), take(), и first() будут отрабатывать неверно и получать меньше элементов чем нужно и не с полным набором множественных свойств. Если вы всё же собираетесь использовать ElementModel с инфоблоками первой версии, то обязательно выставите const IBLOCK\_VERSION = 1; внутри класса модели.

Создадим, модель для инфоблока Товары.

```
