首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在原则2中确定日期?

如何在原则2中确定日期?
EN

Stack Overflow用户
提问于 2012-05-31 14:59:09
回答 2查看 66K关注 0票数 27

我在教义实体中有一个名为“生日”的领域。

我想要创建一个对象,以添加到数据库使用的理论。

在控制器内部:

代码语言:javascript
复制
$name = "John Alex";
$birthday = "11-11-90";
$student = new Student();
$student->setName($name);
$student->setBirthday(strtotime($birthday);
...

但是当我试图坚持的时候,我会得到这个错误。

代码语言:javascript
复制
Fatal error: Call to a member function format() on a non-object in /Library/WebServer/Documents/Symfony/vendor/doctrine-dbal/lib/Doctrine/DBAL/Types/DateType.php on line 44

编辑:

我的实体:

代码语言:javascript
复制
/**
 * @var string $name
 *
 * @ORM\Column(name="name", type="string", length=255)
 */
private $name;

/**
 * @var date $birthday
 *
 * @ORM\Column(name="birthday", type="date", nullable=true)
 */
private $birthday;

/**
 * Set birthday
 *
 * @param date $birthday
 */
public function setBirthday($birthday)
{
    $this->birthday = $birthday;
}

/**
 * Get birthday
 *
 * @return date 
 */
public function getBirthday()
{
    return $this->birthday;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-31 16:16:30

代码语言:javascript
复制
$name = "John Alex";
$birthday = "11-11-1990"; // I changed this
$student = new Student();
$student->setName($name);
$student->setBirthday(new \DateTime($birthday)); // setting a new date instance
// ...
票数 42
EN

Stack Overflow用户

发布于 2013-03-20 09:07:13

映射为"datetime""date"的实体的字段应该包含DateTime的实例。

因此,您的策划人应该按以下方式进行提示:

代码语言:javascript
复制
/**
 * Set birthday
 *
 * @param \DateTime|null $birthday
 */
public function setBirthday(\DateTime $birthday = null)
{
    $this->birthday = $birthday ? clone $birthday : null;
}

/**
 * Get birthday
 *
 * @return \DateTime|null 
 */
public function getBirthday()
{
    return $this->birthday ? clone $this->birthday : null;
}

这允许为生日设置nullDateTime实例。

正如您注意到的,我还clone生日日期的值,以避免破坏封装(请参阅Doctrine2 ORM does not save changes to a DateTime field )。

要设置生日,只需执行以下操作:

代码语言:javascript
复制
$student->setBirthday(new \DateTime('11-11-90'));
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10836123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档