DiscountCouponTable::checkFields()
Сигнатура
public static checkFields(Result $result, mixed $primary, array<string|int, mixed> $data) : mixed
Описание
Проверяет поля данных перед сохранением в БД. Результат хранится в объекте $result
Параметры
$result
Result
$primary
mixed
$data
array<string|int, mixed>
Возвращаемое значение
mixed
Как применяется в DiscountCouponTable
DiscountCouponTable::checkFields() — метод класса \Bitrix\Catalog\DiscountCouponTable модуля «Торговый каталог». Это ORM-сущность D7 (наследник DataManager): строки читаются как объекты EO_DiscountCoupon, наборы — как EO_DiscountCoupon_Collection. Метод достаётся DiscountCouponTable от DataManager::checkFields: поведение общее для всех сущностей, а данные, поля и классы — свои.
Проверяет данные перед записью в DiscountCouponTable: обязательные поля, длину, валидаторы из карты. Вызывается внутри add() и update(), ошибки попадают в их результат.
use Bitrix\Main\Loader;
use Bitrix\Catalog\DiscountCouponTable;
Loader::includeModule('catalog');
$result = DiscountCouponTable::add([
'DISCOUNT_ID' => 1,
'ACTIVE' => 'Y',
'COUPON' => 'coupon',
]);
foreach ($result->getErrors() as $error) {
echo $error->getMessage(), PHP_EOL; // в том числе ошибки checkFields()
}Поля сущности DiscountCouponTable
| Поле | Тип | Свойства |
|---|---|---|
ID | int | обязательное |
DISCOUNT_ID | int | обязательное |
ACTIVE | bool | необязательное, по умолчанию 'Y' |
COUPON | string(32) | обязательное |
DATE_APPLY | datetime | необязательное |
TYPE | enum | необязательное, по умолчанию 'O' |
TIMESTAMP_X | datetime | необязательное |
MODIFIED_BY | int | необязательное |
DATE_CREATE | datetime | необязательное |
CREATED_BY | int | необязательное |
DESCRIPTION | string | необязательное |
CREATED_BY_USER | reference | |
MODIFIED_BY_USER | reference | |
DISCOUNT | reference |
Список — из описания класса в исходном коде; точный состав в вашей версии вернёт DiscountCouponTable::getEntity()->getFields().
Собственные методы DiscountCouponTable
checkCoupon()Проверить купон.checkDiscountId()Проверить id скидки.couponManager()Вернуть методы для менеджера купонов.deleteByDiscount()Удалить все купоны для скидки.getCouponTypes()Возвращает список типов купонов.getData()Вернуть описание купона.isExist()Проверить существующий купон.saveApplied()Сохранить применённые купоны.validateCoupon()Возвращает валидаторы для поля COUPON.validateDiscountId()Возвращает валидаторы для поля DISCOUNT_ID.
checkFields() есть и у других классов модуля «Торговый каталог»: CatalogIblockTable, CatalogViewedProductTable, DiscountModuleTable, DiscountRestrictionTable, DiscountTable, ExtraTable, GroupAccessTable, GroupLangTable.
Исходный файл: source/catalog/lib/discountcoupon.php:686

