2011-10-08 3 views
8

Je suis en train d'ajouter un utilisateur à ma base de données via Doctrine 2.1 projet et j'obtenir ce genre d'erreur:Doctrine 2.1 - Erreur dans DateTimeType

Fatal error: Call to a member function format() on a non-object in C:...\Doctrine\DBAL\Types\DateTimeType.php on line 44

table de base de données elle-même créée sans problème. Quel pourrait être le problème avec mon code suivant?

<?php 
/** 
* @Entity @Table(name="users") 
*/ 
class User { 
    /** 
    * @Id @GeneratedValue @Column(type="integer") 
    * @var string 
    */ 
    protected $id; 

    /** 
    * @Column(type="string", length=20, unique=TRUE) 
    * @var string 
    */ 
    protected $login; 

    /** 
    * @Column(type="string", length=50, nullable=TRUE) 
    * @var string 
    */ 
    protected $nickname; 

    /** 
    * @Column(type="string", length=50, nullable=TRUE) 
    * @var string 
    */ 
    protected $firstname; 

    /** 
    * @Column(type="string", length=50, nullable=TRUE) 
    * @var string 
    */ 
    protected $lastname; 

    /** 
    * @Column(type="string",length=100) 
    * @var string 
    */ 
    protected $email; 

    /** 
    * @Column(type="string",length=24) 
    * @var string 
    */ 
    protected $password; 

    /** 
    * @Column(type="string", length=50, nullable=TRUE) 
    * @var string 
    */ 
    protected $city; 

    /** 
    * @Column(type="date", nullable=TRUE) 
    * @var string 
    */ 
    protected $birth_date; 

    /** 
    * @Column(type="text", nullable=TRUE) 
    * @var string 
    */ 
    protected $description; 

    /** 
    * @Column(type="boolean") 
    * @var boolean 
    */ 
    protected $activation = FALSE; 

    /** 
    * @Column(type="datetime", nullable=TRUE) 
    */ 
    protected $registration_date; 

    /** 
    * @Column(type="datetime", nullable=TRUE) 
    */ 
    protected $login_date; 

    /** 
    * @Column(type="integer") 
    * @var integer 
    */ 
    protected $forum_posts_amount = 0; 

    /** 
    * @Column(type="integer", length=3) 
    * @var integer 
    */ 
    protected $forum_group = 0; 

    /** 
    * @Column(type="integer") 
    * @var integer 
    */ 
    protected $comments_amount = 0; 

    /** 
    * @Column(type="boolean") 
    * @var boolean 
    */ 
    protected $newsletter = FALSE; 

    public function __construct() { 
     $this->registration_date = date("Y-m-d H:i:s"); 
    } 

    public function getId() { return $this->id; } 

    public function getLogin() { return $this->login; } 
    public function setLogin($login) { $this->login = $login; } 

    public function getNickname() { return $this->nickname; } 
    public function setNickname($nickname) { $this->nickname = $nickname; } 

    public function getFirstname() { return $this->firstname; } 
    public function setFirstname($firstname) { $this->firstname = $firstname; } 

    public function getLastname() { return $this->lastname; } 
    public function setLastname($lastname) { $this->lastname = $lastname; } 

    public function getEmail() { return $this->email; } 
    public function setEmail($email) { $this->email = $email; } 

    public function getPassword() { return $this->password; } 
    public function setPassword($password) { $this->password = $password; } 

    public function getCity() { return $this->city; } 
    public function setCity($city) { $this->city = $city; } 

    public function getBirthDate() { return $this->birth_date; } 
    public function setBirthDate($birth_date) { $this->birth_date = $city; } 

    public function getDescription() { return $this->description; } 
    public function setDescription($description) { $this->description = $description; } 

    public function setLoginDate($login_date) { $this->login_date = $login_date; } 

    public function getForumGroup() { return $this->forum_group; } 
    public function setForumGroup($forum_group) { $this->forum_group = $forum_group; } 

    public function getCommentsAmount() { return $this->comments_amount; } 
    public function boostCommentsAmount() { $this->comments_amount++; } 

    public function getNewsletter() { return $this->newsletter; } 
    public function setNewsletter($newsletter) { $this->newsletter = $newsletter; } 
} 

Merci de votre aide à l'avance.

+0

double possible de [Doctrine 2.1 - valeur par défaut de la colonne datetime] (http://stackoverflow.com/questions/7698625/doctrine-2-1-datetime-column-default- valeur) –

+0

Vous avez également une erreur dans 'setBirthDate()'. – FtDRbwLXw6

Répondre

18

Doctrine nécessite date(time) colonnes pour contenir DateTime objets. Donc, en fait, votre constructeur devrait lire

public function __construct() { 
    $this->registration_date = new \DateTime(); 
} 
+0

Merci! Ça y est ...! :) –

1

Je suis sûr que c'est quelque chose avec le __construct()

+1

Mais savez-vous quoi; o? –

Questions connexes