method public static

DealContactTable::checkFields()

Класс: \Bitrix\Crm\Binding\DealContactTable

Сигнатура

public static checkFields(Result $result, mixed $primary, array<string|int, mixed> $data) : mixed

Описание

Проверяет поля данных перед сохранением в БД. Результат хранится в объекте $result

Параметры

$result Result
$primary mixed
$data array<string|int, mixed>

Возвращаемое значение

mixed

Как применяется в DealContactTable

DealContactTable::checkFields() — метод класса \Bitrix\Crm\Binding\DealContactTable модуля «CRM». Это ORM-сущность D7 (наследник DataManager): строки читаются как объекты EO_DealContact, наборы — как EO_DealContact_Collection. Метод достаётся DealContactTable от DataManager::checkFields: поведение общее для всех сущностей, а данные, поля и классы — свои.

Проверяет данные перед записью в DealContactTable: обязательные поля, длину, валидаторы из карты. Вызывается внутри add() и update(), ошибки попадают в их результат.

use Bitrix\Main\Loader;
use Bitrix\Crm\Binding\DealContactTable;

Loader::includeModule('crm');

$result = DealContactTable::add([
    // 'ПОЛЕ' => 'значение' — состав полей см. в getMap()
]);
foreach ($result->getErrors() as $error) {
    echo $error->getMessage(), PHP_EOL; // в том числе ошибки checkFields()
}

Собственные методы DealContactTable

  • bindContactIDs() Привязывает сделку к контактам, указанным по идентификатору.
  • bindContacts() Привязывает сделку к контактам.
  • getBulkDealBindings() Возвращает карту привязок для коллекции сделок.
  • getContactDealIDs() Возвращает идентификаторы сделок, привязанных к указанному контакту.
  • getDealBindingCount() Возвращает количество привязок сделки.
  • getDealBindings() Возвращает привязки сделки.
  • getDealContactIDs() Возвращает идентификаторы контактов, привязанных к указанной сделке.
  • getDealsContactIds()
  • hasContacts() Проверяет, есть ли у сделки контакты.
  • prepareFilterJoinSql() Подготавливает условие SQL-фильтра JOIN для указанной сущности.
  • rebindAllContacts() Отвязывает все контакты от исходной сделки и привязывает их к целевой сделке
  • rebindAllDeals() Отвязывает все сделки от исходного контакта и привязывает их к целевому контакту

checkFields() есть и у других классов модуля «CRM»: Base, Call, CallList, ContactCompanyTable, EntityContactTable, ExternalChannel, Livefeed, OpenLine.

Исходный файл: source/crm/lib/binding/dealcontact.php:686

Что будем искать? Например,Продвижение