简体   繁体   English

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

[英]Symfony 3 : DateTime null even if it is specified in the Entity constructor

I'm under Symfony 3.0.6 I use loadFixtures with this Entity :我在 Symfony 3.0.6 下我使用 loadFixtures 与这个实体:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Categorie
 *
 * @ORM\Table(name="categorie")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CategorieRepository")
 */
class Categorie
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="Libelle", type="string", length=100)
     */
    private $libelle;

    /**
     * @var datetime
     *
     * @ORM\Column(name="created_at", type="datetime")
     */
    private $created_at;

    /**
     * @ORM\ManyToOne(targetEntity="\AppBundle\Entity\User", inversedBy="categories")
     * @ORM\JoinColumn(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 \AppBundle\Entity\User $user
     *
     * @return Categorie
     */
    public function setUser(User $user = null)
    {
        $this->user = $user;

        return $this;
    }

    /**
     * Get user
     *
     * @return \AppBundle\Entity\User
     */
    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;
    }
}

And when i try to insert some values with this :当我尝试插入一些值时:

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();
}

I have this error :我有这个错误:

[Doctrine\\DBAL\\Exception\\NotNullConstraintViolationException] An exception occurred while executing 'INSERT INTO categorie (Libelle, created_at, user_id) VALUES (?, ?, ?)' with params ["[cyriladmin] Categ1", null, 1]: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'created_at' cannot be null [Doctrine\\DBAL\\Exception\\NotNullConstraintViolationException] 使用参数 ["[cyriladmin] Categ1", null, 1]: SQLSTATE执行 'INSERT INTO 类别 (Libelle, created_at, user_id) VALUES (?, ?, ?)' 时发生异常[23000]:违反完整性约束:1048 列“created_at”不能为空

any ideas ?有任何想法吗 ?

You have a bug in the entity: private $created_at;您在实体中有一个错误: private $created_at; vs $this->createdAt = new \\DateTime('now'); vs $this->createdAt = new \\DateTime('now'); <- different variables names. <- 不同的变量名称。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM