Несколько ММ выбора, связанных с 1 ММ таблицы - PullRequest
0 голосов
/ 02 июля 2018

В настоящее время у меня есть проблема, из-за которой я пытаюсь сделать так, чтобы форма Typo3 имела несколько полей с множественным выбором, которые могут изменять одну и ту же таблицу MM. Когда пользователь сохраняет форму, сохраняется только информация в последнем поле с несколькими вариантами выбора, в результате чего предыдущие поля с несколькими вариантами выбора остаются пустыми. Ниже приведено то, что у меня есть в данный момент (с местозаполнителями вместо имен таблиц и т. Д.):

'[FIELD A]' => array(
    'exclude' => 1,
    'label' => '[FIELD A]',
    'config' => array(
        'type' => 'select',
        'foreign_table' => '[FOREIGN TABLE]',
        'foreign_table_where' => ' AND category = "CAT1"',
        'size' => 10,
        'minitems' => 0,
        'maxitems' => 99
    )
),
'[FIELD B]' => array(
    'exclude' => 1,
    'label' => '[FIELD B]',
    'config' => array(
        'type' => 'select',
        'foreign_table' => '[FOREIGN TABLE]',
        'MM' => '[MM TABLE]',
        'foreign_table_where' => ' AND category = "CAT2"',
        'size' => 10,
        'minitems' => 0,
        'maxitems' => 99
    )
),
'[FIELD C]' => array(
    'exclude' => 1,
    'label' => '[FIELD C]',
    'config' => array(
        'type' => 'select',
        'foreign_table' => '[FOREIGN TABLE]',
        'MM' => '[MM TABLE]',
        'foreign_table_where' => ' AND category = "CAT3"',
        'size' => 10,
        'minitems' => 0,
        'maxitems' => 99
    )
),
'[FIELD D]' => array(
    'exclude' => 1,
    'label' => '[FIELD D]',
    'config' => array(
        'type' => 'select',
        'foreign_table' => '[FOREIGN TABLE]',
        'MM' => '[MM TABLE]',
        'foreign_table_where' => ' AND category = "CAT4"',
        'size' => 10,
        'minitems' => 0,
        'maxitems' => 99
    )
),

Для уточнения, когда я сохраняю форму Typo3, сохраняется только информация в [ПОЛЕ D], а все существующие данные из других 3 полей удаляются. Мне нужно, чтобы данные из всех полей были сохранены.

Есть идеи?

Приветствия

1 Ответ

0 голосов
/ 02 июля 2018

Проблема вашей таблицы MM заключается в том, что DataHandler не принимает таблицу MM для нескольких полей, поскольку ему требуется еще одна информация. Вы должны добавить поле "fieldname" в свою таблицу MM:

fieldname varchar(255) DEFAULT '' NOT NULL,

Затем в конфигурации каждого поля добавьте конфигурацию, чтобы DataHandler знал, какое имя поля хранить в каждом отношении записи MM. Пример для ПОЛЯ A:

'[FIELD A]' => [
    'exclude' => 1,
    'label' => '[FIELD A]',
    'config' => [
        'type' => 'select',
        'foreign_table' => '[FOREIGN TABLE]',
        'MM' => '[MM TABLE]',
        'MM_match_fields' => [
            'fieldname' => 'FIELD A'
        ],
        'size' => 10,
        'minitems' => 0,
        'maxitems' => 99
    ]
],

Таким образом, вы также можете добавить дополнительное поле о «имени таблицы» отношения записей. Это позволяет вам использовать одну таблицу MM для нескольких таблиц. Проверьте таблицу sys_category_record_mm, которая делает то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...