Symfony 3 : DateTime null,即使它是在实体构造函数中指定的



我在Symfony 3.0.6下我在这个实体中使用负载夹具:

<?php
namespace AppBundleEntity;
use DoctrineORMMapping as ORM;
/**
 * Categorie
 *
 * @ORMTable(name="categorie")
 * @ORMEntity(repositoryClass="AppBundleRepositoryCategorieRepository")
 */
class Categorie
{
    /**
     * @var int
     *
     * @ORMColumn(name="id", type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @var string
     *
     * @ORMColumn(name="Libelle", type="string", length=100)
     */
    private $libelle;
    /**
     * @var datetime
     *
     * @ORMColumn(name="created_at", type="datetime")
     */
    private $created_at;
    /**
     * @ORMManyToOne(targetEntity="AppBundleEntityUser", inversedBy="categories")
     * @ORMJoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")
     */
    private $user;
    public function __construct()
    {
        $this->createdAt = new DateTime('now');
    }
    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * Set libelle
     *
     * @param string $libelle
     *
     * @return Categorie
     */
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;
        return $this;
    }
    /**
     * Get libelle
     *
     * @return string
     */
    public function getLibelle()
    {
        return $this->libelle;
    }
    /**
     * Set user
     *
     * @param AppBundleEntityUser $user
     *
     * @return Categorie
     */
    public function setUser(User $user = null)
    {
        $this->user = $user;
        return $this;
    }
    /**
     * Get user
     *
     * @return AppBundleEntityUser
     */
    public function getUser()
    {
        return $this->user;
    }
    /**
     * Set createdAt
     *
     * @param datetime $createdAt
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;
    }
    /**
     * Get createdAt
     *
     * @return datetime
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }
}

当我尝试用这个插入一些值时:

public function loadCategorie(ObjectManager $manager, $user)
{
    $aLib = array('Categ1','Categ2','Categ3','Categ4','Categ5','Categ6','Categ7');
    foreach($aLib as $catP)
    {
        $cat = new Categorie();
        $cat->setLibelle("[".$user->getUsername()."] ".$catP);
        $cat->setUser($user);
        $manager->persist($cat);
    }
    $manager->flush();
}

我有这个错误:

[Doctrine\DBAL\Exception\NotNullConstraintViolationException] 执行"插入到分类(Libelle、created_at、user_id)值 (?, ?, ?)"时发生异常 params ["[cyriladmin] Categ1", null, 1]: SQLSTATE[23000]:完整性约束冲突:1048 列"created_at"不能为空

有什么想法吗?

实体中有一个错误:private $created_at; vs $this->createdAt = new DateTime('now'); <- 不同的变量名称。

最新更新