[英]Symfony 3 : DateTime null even if it is specified in the Entity constructor
我在 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;
}
}
當我嘗試插入一些值時:
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] 使用參數 ["[cyriladmin] Categ1", null, 1]: SQLSTATE執行 'INSERT INTO 類別 (Libelle, created_at, user_id) VALUES (?, ?, ?)' 時發生異常[23000]:違反完整性約束:1048 列“created_at”不能為空
有任何想法嗎 ?
您在實體中有一個錯誤: private $created_at;
vs $this->createdAt = new \\DateTime('now');
<- 不同的變量名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.