[TYPO3-mvc] MM (many to many) how to tca.php
Cornelius Illi
cornelius.illi at student.hpi.uni-potsdam.de
Fri Apr 30 18:35:54 CEST 2010
Hi Franz,
thanks for your support. I was able to get everything running. Except
that I need to do the following and I don't know how do change it.
The generated SQL looks like this at the moment:
|LEFT JOIN tx_xx_domain_model_staat ON tx_xx_unternehmen_staat_mm.uid_foreign = tx_xx_domain_model_staat.uid
WHERE tx_xx_unternehmen_staat_mm.uid_local = '<this.uid>' ORDER BY tx_xx_unternehmen_staat_mm.sorting ASC
|
The <this.uid> should actually be <this.unternehmen_nr>. Didn't find
anything on how to do that. Cannot do it using the uid field as we
synchonrize the data from a clients database.
Cheers,
Cornelius
Am 30.04.2010 17:21, schrieb Franz Koch:
> Hey Cornelius,
>
>
>> TCA.php
>> ================================
>> 'columns' => array(
>> 'countries' => array(
>> 'config' => array (
>> 'type' => 'inline',
>> 'foreign_class' => 'Tx_xx_Domain_Model_Staat',
>> 'foreign_table' => 'tx_xx_domain_model_staat',
>> 'MM' => 'tx_xx_domain_model_unternehmen_staat_mm',
>> 'MM_match_fields' => array(
>> "nr" => 'tx_xx_domain_model_staat',
>> "unternehmen_nr" => 'tx_xx_domain_model_unternehmen'
>> ),
>>
>> )
>> ),
>> ================================
>>
> Please have a look at the TYPO3 documentation [1] for how to
> configure/use MM_match_fields - it seems like you've got a wrong picture
> from it.
>
> With MM_match_fields and MM_insert_fields (you need both) you can tell
> TYPO3 which additional data should be stored in the MM table in order to
> identify the relations to different tables as soon as you use one MM
> table for relations to multiple other tables (like DAM does).
> It does not insert values from fields or objects there, but simply the
> plain text value you defined in your configuration. So having this
> configuration:
>
>
>> 'MM_match_fields' => array(
>> "nr" => 'tx_xx_domain_model_staat',
>> "unternehmen_nr" => 'tx_xx_domain_model_unternehmen'
>> ),
>>
> Typo3 will look for MM relations, where the MM table has the value
> "tx_xx_domain_model_staat" in it's field "nr" and the value
> "tx_xx_domain_model_unternehmen" in it's field "unternehmen_r". As long
> as you don't add those values via MM_insert_fields, your quieries will
> alway return a empty result. The SQL definition of your MM table would
> have to look like this:
>
> CREATE TABLE tx_xx_domain_model_unternehmen_staat_mm (
> uid_local...,
> uid_foreign...,
> nr...,
> unternehmen_nr...,
> sorting
> );
>
>
> But as it seems, you're only using the MM-table for a relation between 2
> tables, so simply drop the "MM_match_field" part in your TCA
> configuration and everything should work as expected.
>
>
>
> [1]
> http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.3.0/view/4/2/#id2522688
> (scroll down to the MM part)
>
More information about the TYPO3-project-typo3v4mvc
mailing list