Skip to content
This repository has been archived by the owner on Jan 10, 2023. It is now read-only.

Проблема с автоматическими миграциями на добавление пользовательских полей #17

Open
svn72 opened this issue Sep 17, 2019 · 2 comments

Comments

@svn72
Copy link

svn72 commented Sep 17, 2019

При создании автомиграции массив fields формируется некорректно.

Фрагмент результирующего кода метода up():

public function up()
    {
        $fields = array (
  'ENTITY_ID' => 'HLBLOCK_4',
  'FIELD_NAME' => 'UF_NAME',
  'USER_TYPE_ID' => 'string',
  'XML_ID' => '',
  'SORT' => 200,
  'MULTIPLE' => 'N',
  'MANDATORY' => 'Y',
  'SHOW_FILTER' => 'N',
  'SHOW_IN_LIST' => 'Y',
  'EDIT_IN_LIST' => 'Y',
  'IS_SEARCHABLE' => 'N',
  'SETTINGS' => 'a:6:{s:4:"SIZE";i:20;s:4:"ROWS";i:1;s:6:"REGEXP";N;s:10:"MIN_LENGTH";i:0;s:10:"MAX_LENGTH";i:0;s:13:"DEFAULT_VALUE";N;}',
  'LIST_FILTER_LABEL' => 
  array (
    'ru' => 'Название',
  ),
  'LIST_COLUMN_LABEL' => 
  array (
    'ru' => 'Название',
  ),
  'EDIT_FORM_LABEL' => 
  array (
    'ru' => 'Название',
  ),
);

        $this->addUF($fields);
    }

Проблемный участок в STTINGS
s:6:"REGEXP";N;

при применении такой миграции в поле "регулярное выражение для проверки" и "значение по умолчанию" попадает "a"

что при попытке создания элемента приведет к ошибке формата

Поле "Название" не удовлетворяет проверочному регулярному выражению.

После настройки поля вручную в таблице данный блок выглядит как
s:6:"REGEXP";s:0:"";

@svn72
Copy link
Author

svn72 commented Sep 17, 2019

Уточнение, если SETTINGS вставить как в таблице b_user_field сериализованным массивом то поле создастся все равно не корректно, т.к. в методе
CUserTypeEntity::add данное поле сериализуется без проверки, т.е. подразумевается передача массива в данный метод.

Нужно делать предобработку поля "SETTINGS" на этапе создания файла миграции

@enjame
Copy link

enjame commented Oct 21, 2019

Здравствуйте, проблема актуальна?)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants