我正在尝试通过Doctrine 2.1项目将用户添加到我的数据库中,我遇到了这样的错误:
致命错误:在第44行的C:... \ Doctrine \ DBAL \ Types \ DateTimeType.php中的非对象上调用成员函数format()
数据库表本身创建没有问题。我的以下代码可能有什么问题?
<?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; }
}
提前感谢您的帮助。
答案 0 :(得分:18)
Doctrine要求date(time)
列包含DateTime
个对象。所以实际上你的构造函数应该是
public function __construct() {
$this->registration_date = new \DateTime();
}
答案 1 :(得分:1)
我确信它与__construct()
有关