У меня проблемы с функцией Timestampable в Doctrine 1.2.2 и 1.2.3.
Ошибка при попытке сохранить () моей записи:
Uncaught исключение «Doctrine_Validator_Exception» с сообщением «Проверка не удалась в классе XXX 1 поле имело ошибку проверки: * 1 валидатор не был выполнен на create_at (без знака) 'в ...
Iсоздал соответствующее поле в таблице MySQL как:
created_at
DATETIME NOT NULL,
Затем в setTableDefinition () у меня есть:
$this->hasColumn('created_at', 'timestamp', null, array(
'type' => 'timestamp',
'fixed' => false,
'unsigned' => false,
'primary' => false,
'notnull' => true,
'autoincrement' => false,
));
, который берется прямо из вывода generateModelsFromDb ().
И, наконец, мой setUp () выглядит следующим образом:
public function setUp()
{
parent::setUp();
$this->actAs('Timestampable', array(
'created' => array(
'name' => 'created_at',
'type' => 'timestamp',
'format' => 'Y-m-d H:i:s',
'disabled' => false,
'options' => array()
),
'updated' => array(
'disabled' => true
)));
}
(я пытался не определять все эти поля как «созданные», но у меня возникла та же проблема.)
Я немного озадачен тем, что я делаю неправильно - во-первыхЯ не понимаю, почему Doctrine запускает какие-либо неподписанные проверки для типа данных timestamp ...
UpdaТед
Я нахожусь на Debian Lenny (5.0.8) с MySQL (5.0.51a-24 + lenny5O).Проблема возникает с Доктриной 1.2.3 и 1.2.2.Я заметил, что в примерах Doctrine используются столбцы TIMESTAMP MySQL, а не DATETIME, поэтому я изменил их и сгенерировал заново, но проблема все еще повторялась.Я также подумал, что это может быть проблемой с определением MySQL, поэтому я запустил generateSqlFromModels, чтобы получить правильный SQL, но это тоже нормально (DATETIME NOT NULL).
Я полностью озадачен - зарегистрировал ошибкув Доктрине JIRA, чтобы узнать, смогу ли я выяснить это: DC-965
Любая помощь с благодарностью получена!
Алекс