我在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;
}
我做错了什么?
答案 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。