2016-05-28 3 views
-1

に指定されている場合でも、私はこのエンティティとloadFixturesを使用symfonyの3.0.6 下だ:symfonyの3:日付と時刻のヌルそれは、エンティティのコンストラクタ

<?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; 
    } 
} 

、私はこれでいくつかの値を挿入しよう:

[教義\ DBAL \例外の\ NotNullConstraintViolationException] 例外が発生しました:

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

私はこのエラーを持っています パラメータで「INSERT INTO categorie(Libelle、created_at、user_id)VALUES(?、?、?)」を実行します。 SQLSTATE [23000]:整合性制約違反:1048列'created_at'はnullにはできません

アイデア?

答えて

0

エンティティにバグがあります。private $created_at;$this->createdAt = new \DateTime('now'); < - 異なる変数名です。

+0

ああ...ありがとうポイント私はそれ! – CyrilCharlier

+0

@ user2815068 NetbeansやPhpStormなどのIDEを使用すると、これらの種類の間違いを発見するのに大いに役立ちます。 –

+0

OKですが、PhpStormは少し高価です!私はメモ帳++のみを使用します。私は思うnetbeansを試してみます。ありがとう – CyrilCharlier

関連する問題