2016-11-30 62 views
1

我在TCA中有一個標記我想用當前的UID替換它。如何使用itemsProcFunc替換TCA中的標記?

這樣

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

的TCA代碼我的渲染功能是這樣的:

/** 
    * 
    * @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; 

    } 

我做錯了嗎?

回答

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)。如果你的元素是新的,你沒有任何使用。

+0

Thx爲提示。我已經看到了文檔,但我忽略了。 – test123456