2013-03-22 3 views
0

Привет, я использую FOSUSerBundle для регистрации. А также я добавил в свою организацию:FOSUser Bundle symfony2 дата рождения

/** 
* 
* @ORM\Column(name="birthday", type="date", nullable=true, options={"default" = "0000-00-00"}) 
*/ 
protected $birthday="0000-00-00"; 

Моя регистрационная форма не имеет ничего с ней. Нет поля рождения или что-то в этом роде. Я просто не хочу иметь «нуль» в столбце DB.

Но когда я пытаюсь зарегистрировать эту ошибку: появляться

Fatal error: Call to a member function format() on a non-object in C:\xampp\htdocs\project\vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateType.php on line 44 

Как это исправить? : O

ответ

0

Возможно, он обнаружил, что свойство $birthday не имеет значения null, когда оно пытается создать формат даты и времени, прежде чем продолжать его. Поскольку ваше поле имеет значение типа string, но вы тип поля datetime, он пытается выполнить формат.

решения, вероятно, будет делать:

/** 
* 
* @ORM\Column(name="birthday", type="date", nullable=true, options={"default" = "0000-00-00"}) 
*/ 
protected $birthday=null; 

Убедитесь, что поле базы данных действительно обнуляемое.

Надеется, что это помогает ...

+0

btw я забыл отметить ваше сообщение в другом вопросе как asnswered. Итак, я сделал это сейчас :) Хм .. с одной стороны, это помогло, пока нет ошибки ... но поскольку $ birthday = null, база данных обновляется со значением «null». Я хотел бы видеть там значение по умолчанию. Просто это как-то сделать, и мы будем в порядке :) – EnchanterIO

1

Don`t использование по умолчанию = "0000-00-00", потому что доктрина преобразует и PHP \ DateTime. И PHP \ DateTime имеет диапазон между 1970 годом - ... Просто используйте null по этой причине.

+0

и как я могу достичь, когда кто-то зарегистрируется .. его значение по умолчанию в БД не будет NULL, а 0000-00-00? – EnchanterIO

Смежные вопросы