Bug #98322
closedIRRE fields have limited TCA-options concerning mm-tables
0%
Description
This code (of EXT:blog_example, table tx_blogexample_domain_model_person) should autocreate an mm-table with the field `fieldname` but it doesn't. The table is created but without that field.
'tags' => [ 'label' => 'LLL:EXT:blog_example/Resources/Private/Language/locallang_db.xlf:tx_blogexample_domain_model_person.tags', 'config' => [ 'type' => 'inline', 'foreign_table' => 'tx_blogexample_domain_model_tag', // needed by Extbase 'MM' => 'tx_blogexample_domain_model_tag_mm', 'MM_match_fields' => [ 'fieldname' => 'tags', ], 'appearance' => [ 'useCombination' => 1, 'useSortable' => 1, 'collapseAll' => 1, 'expandSingle' => 1, ], ], ], 'tags_special' => [ 'exclude' => true, 'label' => 'LLL:EXT:blog_example/Resources/Private/Language/locallang_db.xlf:tx_blogexample_domain_model_person.tags_special', 'config' => [ 'type' => 'inline', 'foreign_table' => 'tx_blogexample_domain_model_tag', // needed by Extbase 'MM' => 'tx_blogexample_domain_model_tag_mm', 'MM_match_fields' => [ 'fieldname' => 'tags_special', ], 'appearance' => [ 'useCombination' => 1, 'useSortable' => 1, 'collapseAll' => 1, 'expandSingle' => 1, ], ], ],
Updated by Benni Mack almost 2 years ago
- Target version changed from 12.0 to 12.1
Updated by Gerrit Code Review over 1 year ago
- Status changed from New to Under Review
Patch set 1 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77871
Updated by Gerrit Code Review over 1 year ago
Patch set 2 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77871
Updated by Christian Kuhn over 1 year ago
I think this is a side effect of the broken TCA in blog example, see this comment: https://github.com/TYPO3/typo3/blob/main/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php#L77
These relations should be fixed in blog_example.
Looking at "sys_category_record_mm" instead, the system gets it right: In general, "fieldname" and "tablenames" are only needed if the "local side" (in this case sys_category) can be the target of multiple "foreign side" tables. In this case, "MM_oppositeUsage" is set, and the system auto-creates the two fields in DefaultTcaSchema already.
In general, if you have only one "foreign side", the two fields "fieldname" and "tablename" are not needed, should be omitted, and "MM_match_fields" should not be declared. I explained a bit about the mess around "MM_match_fields" here: https://review.typo3.org/c/Packages/TYPO3.CMS/+/70844/8/typo3/sysext/core/Classes/Database/RelationHandler.php#1650
In the end, we should actually get rid of "MM_match_fields" altogether, since according 'where' clauses are created automatically as soon as a local side is referenced by multiple foreign sides, which is indicated by the existence of "MM_oppositeUsage".
As such, I would prefer not to auto-create fields based on "MM_match_fields", since that TCA definition should vanish altogether, using it on the local side indicates a broken TCA, and currently adds more harm than good.
Updated by David Bruchmann over 1 year ago
Christian, as long as there is a (documented) working solution I don't mind.
I'll certainly come back to this issue for information but if the blog example is updated already that's perhaps not even required.
Currently I can't verify it in detail what you wrote, but I think you know better than most people about it.
Feel free to close the issue if you think it's not relevant anymore.
Updated by Benni Mack over 1 year ago
- Target version changed from 12.3 to 12 LTS
Updated by Gerrit Code Review over 1 year ago
Patch set 3 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77871
Updated by Benni Mack about 1 year ago
- Target version changed from 12 LTS to Candidate for patchlevel
Updated by Gerrit Code Review 12 months ago
Patch set 4 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/77871
Updated by Christian Kuhn 12 months ago
Hey. We meanwhile fixed the core 'blog_example', the 'local' side (the tag table) no longer contains the MM_match_fields definition since it's a useless setting on this side. DefaultTcaSchema only looks at local side when creating the tables sql definition. I'll close here and will abandon the patch.
Updated by Christian Kuhn 12 months ago
- Status changed from Under Review to Rejected