A similiar usecase where I get this is having such a relation
'categories' => array(
'exclude' => 1,
'l10n_mode' => 'exclude',
'l10n_display' => 'defaultAsReadonly',
'label' => $ll . 'tx_news_domain_model_news.categories',
'config' => array(
'type' => 'select',
'renderMode' => 'tree',
'treeConfig' => array(
'dataProvider' => \GeorgRinger\News\TreeProvider\DatabaseTreeDataProvider::class,
'parentField' => 'parent',
'appearance' => array(
'showHeader' => TRUE,
'allowRecursiveMode' => TRUE,
'expandAll' => TRUE,
'maxLevels' => 99,
),
),
'MM' => 'sys_category_record_mm',
'MM_match_fields' => array(
'fieldname' => 'categories',
'tablenames' => 'tx_news_domain_model_news',
),
'MM_opposite_field' => 'items',
'foreign_table' => 'sys_category',
'foreign_table_where' => ' AND (sys_category.sys_language_uid = 0 OR sys_category.l10n_parent = 0) ORDER BY sys_category.sorting',
'size' => 10,
'autoSizeMax' => 20,
'minitems' => 0,
'maxitems' => 99,
)
),
Important is the
'l10n_display' => 'defaultAsReadonly',
The fix would be the same in different class: sysext/backend/Classes/Form/Element/SelectTreeElement.php:49
$selectedNodes = $parameterArray['itemFormElValue'] ?: [];