2013-08-07 39 views
0

工作,我有這樣定義一個字段:爲什麼不EVAL空不是在TCA

max_items int(11) NULL 

如果你離開這個領域我想它來存儲NULL後端空。

爲此,我使用TCA中,這是不行的這種配置:

'max_items' => array(
    'exclude' => 0, 
    'label' => '...', 
    'config' => array(
     'type' => 'input', 
     'eval' => 'null', 
    ), 
), 

編輯: 存儲的預期值NULL相反的,它存儲0。 我試過max_items int(11) DEFAULT NULL,但那不起作用。

編輯2: 謝謝freshp! 最後我寫我自己的eval函數:

<?php 
class tx_myextension_evalfunc { 
    function evaluateFieldValue($sValue, $aIsIn, &$bSet) 
    { 
     return ($sValue === '') ? null : $sValue; 
    } 
} 
?> 

使用這種配置:

'max_items' => array(
    'exclude' => 0, 
    'label' => '...', 
    'config' => array(
     'type' => 'input', 
     'eval' => 'tx_myextension_evalfunc', 
    ), 
), 
+0

對不起,「但它不起作用」不是很有幫助。你有錯誤嗎?實際存儲在數據庫中的是什麼?這是你的領域的整個配置還是你遺漏了一些東西? – Michael

+1

您應該爲您的數據庫字段使用「max_items int(11)DEFAULT NULL」。 – freshp

+0

感謝您的評論,我編輯了這個問題。 – user125661

回答

2

此錯誤是在TYPO3 6.0及更高fixed。在TCA配置有一個新的eval選項「空」:

'config' = array(
    'type' => 'input', 
    'eval' => 'null', 
    ... 
); 

如果啓用該選項,則在輸入右側的複選框。如果它被禁用,則將NULL值保存到數據庫,如果它被激活,則可以輸入一個整數值。


原來的答覆:

有你們兩個有趣的鏈接:

相關問題