I've been trying to extend tx_news with a m:m relation with not much luck so far. Anything I can find online is just for a regular relation, where the ID is saved directly into the same table, not an extra _mm column.
The backend looks fine so far, the way I want it with a selectMultipleSideBySide
renderType. It also saves the relations to the database.
Extending the News TCA with this, works fine:
$extendArtistId = array(
'artist_id' => array (
'exclude' => 0,
'l10n_mode' => 'exclude',
'label' => 'Künstler',
'config' => array(
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'enableMultiSelectFilterTextfield' => TRUE,
'foreign_table' => 'tx_bfartistmanagement_domain_model_kuenstler',
'foreign_table_where' => 'AND tx_bfartistmanagement_domain_model_kuenstler.sys_language_uid = 0 AND tx_bfartistmanagement_domain_model_kuenstler.pid = 63 ORDER BY tx_bfartistmanagement_domain_model_kuenstler.name ASC',
'MM' => 'tx_news_domain_model_news_artist_id_mm',
'minitems' => 0,
'maxitems' => 99
),
),
);
And the entries are saved the way I expected:
The problem I'm having now is getting these relations from a different extension. News has something called "Hooks", but I'm not sure I want/need that for my case.
The query inside my other extension currently looks like this, newsRepository being injected:
$news = $this->newsRepository->findByArtistId(intval($userID));
I struggle with the next step(s). The function findByArtistId
was working before as I was saving the artistId directly inside the news table, but that only works with a direct relation, not an M:M one.
How can I get the News that are associated with that artist, with an m:m relation?