TYPO3 8.7: MM_match_fields не сохраняется при редактировании записи - PullRequest
0 голосов
/ 01 октября 2018

Я бы хотел создать связь между страницами и другими таблицами (например, news и fe_users).Для этого я создаю 3 поля в соответствующих таблицах (news или fe_users).Каждое поле - это выбор ММ для страниц, которые прикреплены к данной категории с использованием этой конфигурации

'policies' => [
    'displayCond' => 'FIELD:sys_language_uid:=:0',
    'exclude' => true,
    'label' => $ll . 'tx_relations.policies',
    'config' => [
        'type' => 'select',
        'renderType' => 'selectMultipleSideBySide',
        'enableMultiSelectFilterTextfield' => true,
        'foreign_table' => 'pages',
        'foreign_table_where' => 'AND pages.uid IN (SELECT uid_foreign FROM sys_category_record_mm WHERE sys_category_record_mm.uid_local = 1 AND sys_category_record_mm.tablenames = "pages") ORDER BY pages.title ASC, pages.uid ASC',
        'MM' => 'tx_pages_references_mm',
        'MM_match_fields' => [
            'tablenames' => $tablename,
            'fieldname' => 'policies',
        ],
        'minitems' => 0,
        'maxitems' => 9999
    ]
],
'working_groups' => [
    'displayCond' => 'FIELD:sys_language_uid:=:0',
    'exclude' => true,
    'label' => $ll . 'tx_relations.working_groups',
    'config' => [
        'type' => 'select',
        'renderType' => 'selectMultipleSideBySide',
        'enableMultiSelectFilterTextfield' => true,
        'foreign_table' => 'pages',
        'foreign_table_where' => 'AND pages.uid IN (SELECT uid_foreign FROM sys_category_record_mm WHERE sys_category_record_mm.uid_local = 2 AND sys_category_record_mm.tablenames = "pages") ORDER BY pages.title ASC, pages.uid ASC',
        'MM' => 'tx_pages_references_mm',
        'MM_match_fields' => [
            'tablenames' => $tablename,
            'fieldname' => 'working_groups',
        ],
        'minitems' => 0,
        'maxitems' => 9999
    ]
],
'networks' => [
    'displayCond' => 'FIELD:sys_language_uid:=:0',
    'exclude' => true,
    'label' => $ll . 'tx_relations.networks',
    'config' => [
        'type' => 'select',
        'renderType' => 'selectMultipleSideBySide',
        'enableMultiSelectFilterTextfield' => true,
        'foreign_table' => 'pages',
        'foreign_table_where' => 'AND pages.uid IN (SELECT uid_foreign FROM sys_category_record_mm WHERE sys_category_record_mm.uid_local = 3 AND sys_category_record_mm.tablenames = "pages") ORDER BY pages.title ASC, pages.uid ASC',
        'MM' => 'tx_pages_references_mm',
        'MM_match_fields' => [
            'tablenames' => $tablename,
            'fieldname' => 'networks',
        ],
        'minitems' => 0,
        'maxitems' => 9999
    ]
],

При сохранении записи

У меня есть следующие записи в БД

 uid_local uid_foreign    tablenames                   fieldname      sorting
 1         129            tx_news_domain_model_news    policies       1
 1         130            tx_news_domain_model_news    working_groups 1
 1         131            tx_news_domain_model_news    networks       1

Что мне кажется правильным ...

Но когда я редактирую запись в BE, каждая страница не выбирается ...

Итак, INSERT кажется нормальным, но SELECTкажется вниз ... Можете ли вы сказать мне, что я делаю не так?

...