如何用itemsProcFunc替换TCA中的标记?

时间:2016-11-30 09:42:53

标签: typo3 extbase typo3-7.6.x

我在TCA中有一个标记我想用当前的UID替换它。

像这样的TCA代码

'foreign_table' => 'pages',
                'foreign_table_where' => 'AND groups = ###UID###',
                'foreign_sortby' => 'sorting',
                'itemsProcFunc' => 'Vendor\\extkey\\Utility\\GeneralUtility->render',

我的渲染功能如下所示:

/**
     *
     * @param array $PA
     * @param \TYPO3\CMS\Backend\Form\FormEngine $pObj
     * @return string
     */
    public function render(array &$PA, $pObj) {
        $uid = $PA['row']['uid'];
        $PA['config']['foreign_table_where'] = str_replace('###UID###', $uid, $PA['config']['foreign_table_where']);
        return $PA;

    }

我做错了什么?

1 个答案:

答案 0 :(得分:4)

为什么你这么复杂?

查看TCAReference。已经有一个标记###THIS_UID###,它被当前元素的uid替换。所以你的配置看起来像这样:

'foreign_table' => 'pages',
'foreign_table_where' => 'AND groups = ###THIS_UID###',
'foreign_sortby' => 'sorting',

另请参阅说明:is current element uid (zero if new)。如果你的元素是新的,你就没有任何uid。