запрос на создание столбца в таблице при создании поля

InstantCMS 2.X

запрос на создание столбца в таблице при создании поля

#1 5 июня 2023 в 13:37

всем привет, создаю своё поле, всё работает хорошо, но мне нужно для работы моего поля что бы в базе данных в том типе контента где устанавливается поле было еще дополнительный столбец, как в файле (\system\fields\myfild.php ) это правильно прописать? (v может метод готовый дополнительный какой есть ?)то есть при установке поля автоматом создается столбец в базе данных для этого поля, но мне нужно что бы так же создавался дополнительный столбец

#2 5 июня 2023 в 14:05

При добавлении поля city, в бд создается дополнительное поле fildname_cache. В поле filedname содержится id города, а в fieldname_cache — название. docs.instantcms.ru/dev/forms/field-file — вот здесь описание свойства $cache_sql, посмотрите.

Вот так это выглядит в файле поля:

Изображение

Это один вариант. Есть еще другой способ. В методе hookAfterAdd в файле поля можно написать что-то в этом роде:

  1. public function hookAfterAdd($table_name, $field, $model) {
  2. $model->db->query("ALTER TABLE cms_$table_name CHANGE newfield VARCHAR(128) NULL DEFAULT NULL");
  3. return parent::hookAfterAdd($table_name, $field, $model);
  4. }

Вместо cms_ напишите решетку в фигурных скобках. Само меняет на префикс.

Изображение

#3 6 июня 2023 в 07:08

Нифигаccе о-го-гошеньки,  спасибо получилось только я написал ADD вместо CHANGE

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.