首页 > 解决方案 > TYPO3 8.7:编辑记录时不保留 MM_match_fields

问题描述

我想在页面和其他表(例如新闻和 fe_users)之间创建关系。为此,我在相关表(新闻或 fe_users)中创建了 3 个字段。每个字段都是使用此配置附加到给定类别的页面的 MM 选择

'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 似乎失败了......你能告诉我我做错了什么吗?

标签: typo3typo3-8.x

解决方案


推荐阅读