Интерфейсы
CanGetItem
use Pranju\Bitrix24\Contracts\Repositories\CanGetItem;
if ($repository instanceof CanGetItem) {
$attributes = $repository->get(1);
// Или
$attributes = $repository->getReceivedItemAttributes(
$repository->makeGetCommand(1)->call()
);
}
CanCreateItem
use Pranju\Bitrix24\Contracts\Repositories\CanCreateItem;
$attributes = [
'TITLE' => 'Lorem ipsum',
];
if ($repository instanceof CanCreateItem) {
$id = $repository->create($attributes);
// Или
$id = $repository->getCreatedItemId(
$repository->makeCreateCommand($attributes)->call()
);
}
CanUpdateItem
use Pranju\Bitrix24\Contracts\Repositories\CanUpdateItem;
$attributes = [
'TITLE' => 'Lorem ipsum',
];
if ($repository instanceof CanUpdateItem) {
$isUpdated = $repository->update(1, $attributes);
// Или
$isUpdated = $repository->updatedSuccessfully(
$repository->makeUpdateCommand(1, $attributes)->call()
);
}
CanDeleteItem
use Pranju\Bitrix24\Contracts\Repositories\CanDeleteItem;
if ($repository instanceof CanDeleteItem) {
$isDeleted = $repository->delete(1);
// Или
$isDeleted = $repository->deletedSuccessfully(
$repository->makeDeleteCommand(1)->call()
);
}
CanSelectItems
use Pranju\Bitrix24\Contracts\Repositories\CanSelectItems;
$filter = [
'>=DATECREATED' => '2024-01-01',
];
if ($repository instanceof CanSelectItems) {
$items = $repository->select($filter);
// Или
$items = $repository->getSelectedItems(
$repository->makeSeletcCommand($filter)->call()
);
/** Подсчёт по фильтру */
$count = $repository->count($filter);
}
Хоть и все репозитории следуют определённому интерфейсу, они могут иметь некоторые отклонения в формате передаваемых значений.
Например методы get
и makeGetCommand
в Pranju\Bitrix24\Repositories\Crm\CategoryRepository
требуют на вход не просто id категории, а строку вида {entityTypeId}:{id}
. Это связано с особенностями REST API Битрикс24.
Чаще всего, Eloquent-обёртка будет выполнять все подобные разночтения за вас, чтобы избежать путаницы, но в случае низкоуровневого использования пакета нужно будет самостоятельно читать комментарии методов, чтобы избежать ошибок.
Last updated