Я пытаюсь создать приложение с полями динамической таблицы.Идея состоит в том, что администратор может определить, какие поля для каждого элемента доступны, не изменяя таблицы MySQL.
Данные, вводимые в поля, должны быть различных типов, например, текст, валюта и логическое значение, поэтому это будет возможнодобавить суффикс, такой как $, или отобразить изображение для логических значений.Также Поля должны быть назначены на Группы (для разделения их в HTML-наборах полей).Наконец, элемент имеет одно значение для каждого поля.
Я хочу, чтобы формы добавления и редактирования элементов отображали каждое возможное поле.
Поэтому я прав, что мне нужны следующие модели:
Item
(значение hasMany) Field
(принадлежит FieldGroup & FieldType (также имеет значение много ??)) FieldGroup
(поле hasMany) FieldType
(hasMany Field) Value
(относится к Item & Field)
, чтобы получить то, что мне нужно?
Часть Iна самом деле не знаю, как это сделать: разрешено иметь только одно значение на элемент, но поскольку модель Item
имеет множество значений, их может быть больше одного.
А как мне получить поля с группами и типами для формы в Item?Я пытаюсь получить их с помощью loadModel('Group');
(правильно?), А затем назначить массив $fieldsByGroups = $this->Group->find('all')
для шаблонов добавления / редактирования и выполнить foreach($fieldsByGroups)
для создания входных данных формы.Это подходящий метод?
Таблица значений имеет 4 поля: id
, item_id
, field_id
, value
(LongText, как я видел в структуре таблицы WordPress. Мне не нужноразные таблицы для каждого FieldType, как предлагается в некоторых статьях eav (из которых ни одна не то, что мне нужно)).В основном мне не нужно id
, но я думаю, что CakePHP нужен primaryKey и он не может обрабатывать индексы item_id
и field_id
.
спасибо,
manuel