В форме Viewhelper У меня есть много числовых полей, которые по умолчанию должны быть пустыми, а не «0» или «0.00».TYPO3 Extbase: как хранить NULL в БД для пустых числовых полей?
Мне это нужно, потому что в файле saveAction должна использоваться другая обработка данных, в зависимости от пустых полей или заполненных значений (включая 0).
По этой причине я установить свойства поля в таблице базы данных на NULL по умолчанию, например:
CREATE TABLE IF NOT EXISTS `tx_myext_domain_model_result` (
mw double (10,2) DEFAULT NULL,
mw2 double (10,2) DEFAULT NULL,
....
);
TCA выглядит следующим образом:
'mw' => array(
...
'config' => array(
'type' => 'input',
'size' => 30,
'eval' => 'double2,null'
)
),
Кроме того, в классе Результат модели, соответствующие свойства инициализируются с помощью NULL;
/**
* mw
*
* @var float
*/
protected $mw = null;
Я сделал эту проверку, чтобы гарантировать, что NULL обрабатывается к геттеру для пустой полой формы:
public function setMw($mw) {
if ($mw == NULL)
$this->mw = 999;
else
$this->mw = $mw;
}
Это сделало то, что я освобожденное: ММ поле DB был установлен на «999» для пустое поле формы.
Но теперь, переключается обратно в нормальный сеттера,
public function setMw($mw) {
$this->mw = $mw;
}
полей в таблице БД только левый NULL, когда все остальные поля формы пусты, тоже. То есть как только я ввожу значение в одно из полей формы, все остальные пустые поля формы устанавливаются на «0» при сохранении.
Добавление null
в поле TCA eval также не помогло.
Как я могу изменить это поведение? Я использую TYPO3 6.2.x
Что ваша конфигурация TCA? Возможно, вы можете использовать 'type converter' в вашем контроллере (' initializeAction'). – pgampe
Добавлен TCA. Как использовать конвертер типов? Я не хочу менять тип; Я просто NULL, который должен оставаться NULL. Действие не должно быть проблемой, поскольку NULL прибывает в геттер. – rantanplan