将RealURL与JOIN语句一起使用(TYPO3)

时间:2012-01-25 09:12:43

标签: php mysql typo3 realurl

我在一个网站上使用RealURL,我希望在“lookUpTable”语句中加入两个表。生成的URL应该是表a和表b中的字段组合。

所以基本上我想在tableaddWhereClause中加入,而不是使用多个alias_fields

标准语法是:

'lookUpTable' => array(
                            'table' => 'user_3dsplmxml_bfsbrand',
                            'id_field' => 'xml_id',
                            'alias_field' => 'xml_title',
                            'maxLength' => 10,
                            'addWhereClause' => ' AND NOT deleted'
                        )

如果可行的话,手册没有提示,但它会很有用。有谁知道这是否可以做到?

3 个答案:

答案 0 :(得分:3)

您可以使用userFunc而不是lookUpTable。

See realurl manual

答案 1 :(得分:3)

这对我有用(TYPO3 6.1.7):

   'veranstaltung' => array(
      array(
        'GETvar' => 'tx_wsevents_wsevents[dates]',
        'lookUpTable' => array(
          'table' => 'tx_wsevents_domain_model_dates dates, tx_wsevents_domain_model_events events',
          'id_field' => 'dates.uid',
          'alias_field' => "CONCAT ( events.name, '_', DATE_FORMAT ( from_unixtime ( dates.startdate ),'%d-%m-%Y') )",
          'addWhereClause' => ' AND NOT dates.deleted AND ' . 'dates.events=events.uid',
          'useUniqueCache' => 1,
          'useUniqueCache_conf' => array(
            'strtolower' => 1,
            'spaceCharacter' => '-'
          )
        )
      )
    ),

答案 2 :(得分:0)

我需要使用子查询。用'table'=>提到的方法'tableA a,tableB b'没有返回任何值。

                    'lookUpTable' => array(
                        'table'               => '(
                                SELECT
                                    i.uid, k.objektart
                                FROM
                                    tx_wib24immobilien_domain_model_immobilie i
                                    JOIN
                                            tx_wib24immobilien_domain_model_objektkategorie k
                                        ON
                                            i.objektkategorie = k.uid
                            ) i',
                        'id_field'            => 'uid',
                        'alias_field'         => 'objektart',
                        ...
                    ),