我实际上在学习Symfony3,当我设置一个对象字段的默认值时,我发现我无法按照我在下面的教程中学习的常见方式将DateTime对象设置为默认值(参见下面的代码)。
<?php
namespace UTM\UsersBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* User
*
* @ORM\Table(name="utm_users", uniqueConstraints={@ORM\UniqueConstraint(name="uuid", columns={"uuid"}), @ORM\UniqueConstraint(name="username", columns={"username"})}, indexes={@ORM\Index(name="group_id", columns={"group_id"})})
* @ORM\Entity
*/
class User
{
//...
private $var = 'value';
//...
}
所以我寻找了一个解决方案,我发现我可以使用构造函数来实现这一点,所以我完成了以下代码。
<?php
namespace UTM\UsersBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* User
*
* @ORM\Table(name="utm_users", uniqueConstraints={@ORM\UniqueConstraint(name="uuid", columns={"uuid"}), @ORM\UniqueConstraint(name="username", columns={"username"})}, indexes={@ORM\Index(name="group_id", columns={"group_id"})})
* @ORM\Entity
*/
class User
{
//...
private $var;
//...
public function __construct() {
$this->setVar(new DateTime('0000-00-01 00:00:00'));
}
//...
}
但是现在我想知道设置对象默认值的最佳方法是什么。最好只使用构造函数还是混合使用这两种方法。