[TYPO3-german] UNION SELECT und Zugriff auf MM-Tabelle

David Brünner david.bruenner at t-online.de
Wed Jan 17 17:38:43 CET 2018


Dank Stephan Schuler habe ich es hinbekommen diese Tabelle (bzw. View)

[code]
CREATE VIEW tx_kkbaybw_domain_model_fesearch AS
	SELECT
		(uid + 100000) AS uid,
		bezeichnung AS name,
		'' AS vorname,
		'' AS nachname,
		concat(telefon_landvorwahl, ' ', telefon_ortsvorwahl, ' ', telefon_durchwahl) AS telefon,
		concat(fax_landvorwahl, ' ', fax_ortsvorwahl, ' ', fax_durchwahl) AS fax,
		'' AS email,
		'' AS mobile,
		'' AS sprechzeiten_nach_vereinbarung,
		'' AS sprechzeiten_sonderzeiten,
		oeffnungszeit_nach_vereinbarung AS oeffnungszeit_nach_vereinbarung,
		oeffnungszeit_sonderzeiten AS oeffnungszeit_sonderzeiten,
		concat(oeffnungszeit_mo_von_vormittags, ' - ', oeffnungszeit_mo_bis_vormittags) AS oeffnungszeit_mo_vormittags,
		concat(oeffnungszeit_mo_von_nachmittags, ' - ', oeffnungszeit_mo_bis_nachmittags) AS oeffnungszeit_mo_nachmittags,
		concat(oeffnungszeit_di_von_vormittags, ' - ', oeffnungszeit_di_bis_vormittags) AS oeffnungszeit_di_vormittags,
		concat(oeffnungszeit_di_von_nachmittags, ' - ', oeffnungszeit_di_bis_nachmittags) AS oeffnungszeit_di_nachmittags,
		concat(oeffnungszeit_mi_von_vormittags, ' -', oeffnungszeit_mi_bis_vormittags) AS oeffnungszeit_mi_vormittags,
		concat(oeffnungszeit_mi_von_nachmittags, ' - ', oeffnungszeit_mi_bis_nachmittags) AS oeffnungszeit_mi_nachmittags,
		concat(oeffnungszeit_do_von_vormittags, ' _ ', oeffnungszeit_do_bis_vormittags) AS oeffnungszeit_do_vormittags,
		concat(oeffnungszeit_do_von_nachmittags, ' - ', oeffnungszeit_do_bis_nachmittags) AS oeffnungszeit_do_nachmittags,
		concat(oeffnungszeit_fr_von_vormittags, ' - ', oeffnungszeit_fr_bis_vormittags) AS oeffnungszeit_fr_vormittags,
		concat(oeffnungszeit_fr_von_nachmittags, ' - ', oeffnungszeit_fr_bis_nachmittags) AS oeffnungszeit_fr_nachmittags,
		'gebaeude' AS typ,
		'' AS gebaeude,
		'' AS behoerde
	FROM tx_kkbaybw_domain_model_gebaeude
	UNION ALL
	SELECT
		uid AS uid,
		concat(vorname, ' ', nachname) AS name,
		vorname AS vorname,
		nachname AS nachname,
		concat(telefon_landvorwahl, ' ', telefon_ortsvorwahl, ' ', telefon_durchwahl) AS telefon,
		concat(fax_landvorwahl, ' ', fax_ortsvorwahl, ' ', fax_durchwahl) AS fax,
		concat(mobil_landvorwahl, ' ', mobil_ortsvorwahl, ' ', mobil_durchwahl) AS mobile,
		email AS email,
		sprechzeiten_nach_vereinbarung AS sprechzeiten_nach_vereinbarung,
		sprechzeiten_sonderzeiten AS sprechzeiten_sonderzeiten,
		'' AS oeffnungszeit_nach_vereinbarung,
		'' AS oeffnungszeit_sonderzeiten,
		'' AS oeffnungszeit_mo_vormittags,
		'' AS oeffnungszeit_mo_nachmittags,
		'' AS oeffnungszeit_di_vormittags,
		'' AS oeffnungszeit_di_nachmittags,
		'' AS oeffnungszeit_mi_vormittags,
		'' AS oeffnungszeit_mi_nachmittags,
		'' AS oeffnungszeit_do_vormittags,
		'' AS oeffnungszeit_do_nachmittags,
		'' AS oeffnungszeit_fr_vormittags,
		'' AS oeffnungszeit_fr_nachmittags,
		'ansprechpartner' AS typ,
		gebaeude_id AS gebaeude,
		ansprechpartner_behoerde AS behoerde
	FROM tx_kkbaybw_domain_model_ansprechpartner;
[/code]

Mit einem Model abzufragen.

Aber leider kommen die Gebäude (tx_kkbaybw_domain_model_fesearch.gebaeude) und die Behörden (tx_kkbaybw_domain_model_fesearch.ansprechpartner_behoerde) nicht raus.

Ich habe rausgefunden, dass das an der Manipulation der UID liegt. Ändere ich in der MM-Tabelle (tx_kkbaybw_ansprechpartner_behoerde_mm - bzw. tx_kkbaybw_ansprechparter_gebaeude_mm) die localUid von zb. 12 auf 200012 dann funktionierts.

Habe die Doku zur TCA mal durchforstet und es mal mit 

[code]
..
'gebaeude' => [
  'exclude' => false,
  'label' => 'gebaeude',
  'config' => [
    'type' => 'select',
    'foreign_table' => 'tx_kkbaybw_domain_model_gebaeude',
    'MM' => 'tx_kkbaybw_ansprechpartner_gebaeude_mm',
    'MM_table_where' => 'OR local_uid = 200012'       /* hier sollte die Manipulation der UID berücksichtigt werden */
  ],
],
..
[/code]
probiert.
Aber leider ohne Erfolg.

Da ich nur auf der rechten Seite des UNION (also nur das wo das SELECT über gebaeude geht) brauche, habe ich es so gelöst, dass ich dort auf die Manipulation der UID (das +200000) verzichte. Aber das ist nur eine Notlösung.

Kann jemand helfen?


More information about the TYPO3-german mailing list