Machez
@Machez
Бу!

Почему возникает ошибка unknown field definition при использовании в фильтре поля из раздела runtime?

Изначально есть массив параметров к фильтру и всё работает.

$params = [
	'filter' => [
		'!=my_field_one_from_table' => 1,
	]
];


Но, когда в массив добавляется секция runtime с полем ExpressionField...

$params = [
	'filter' => [
		'!=my_field_one_from_table' => 1,
		'=my_field_expression' => 0,
	],
	'runtime' => [
		new ExpressionField(
			'my_field_expression',
			'LENGTH(my_field_two_from_table)',
			null,
			[ 'data_type' => 'integer' ]
		)
	]
];


...То вылетает ошибка:
[Bitrix\Main\SystemException] 
Unknown field definition `my_field_expression` (my_field_expression) for MyCustom Entity. (100)
.../bitrix/modules/main/lib/entity/querychain.php:334


Всё вроде соответствует докам битрикса:
1) https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
2) https://dev.1c-bitrix.ru/learning/course/index.php...

В чём может быть проблема?
  • Вопрос задан
  • 5022 просмотра
Пригласить эксперта
Ответы на вопрос 1
serginhold
@serginhold
Всё вроде соответствует докам битрикса

разве?

дока:
new Entity\ExpressionField('MAX_AGE', 'MAX(%s)', array('AGE_DAYS'))


твой:
new ExpressionField( 'my_field_expression', 'LENGTH(my_field_two_from_table)', null, [ 'data_type' => 'integer' ])


найди два отличия в 2 и 3 параметрах
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы