Задать вопрос
ragnar_ok
@ragnar_ok

Bitrix ORM: как получить поле связанной таблицы (fetchObject())?

Указываю runtime поле FIELD_ENUM (b_user_field_enum). Использую метод fetchObject();

Пытаюсь получить поле именованным методом: $entityObj->getFieldEnum();.
Однако пробрасывает исключение: Unknown method getFieldEnum for object EO_Countries.

При этом методом fetchAll() удается получить поле.

Так как с использованием Bitrix ORM получить поле связанной таблицы?

/** @var EntityObject $entityObj */
$entityObj = (new Query(HighloadBlockTable::compileEntity('Countries')))
	->registerRuntimeField(
		new Reference(
			'FIELD_ENUM',
			FieldEnumTable::class,
			Join::on('this.UF_TEL', 'ref.ID')
		)
	)
	->addSelect('FIELD_ENUM.VALUE')
	->fetchObject();

$tel = $entityObj->getFieldEnum(); // Unknown method `getFieldEnum` for object `EO_Countries`
  • Вопрос задан
  • 1563 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
ragnar_ok
@ragnar_ok Автор вопроса
Магические методы работают только для описанных в сущности полей. Нужно использовать

$tel = $entityObj->get('FIELD_ENUM').

Ответили на вопрос:
@gasparonik
@protopgamer
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы