2016-04-18 7 views
0

Ich bin eigentlich immer einenLehre HasLifecycleCallback Aufruf PrePersist nicht (oder etwas)

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'created_at' cannot be null 

Fehler, weil der PrePersist nicht ausgeführt wird. Ich habe herumgesucht und die größten Fehler schienen sich zu vergewissern, dass @HasLifecycleCallback in den Klassenanmerkungen und der @ PrePersist in der Funktion verwendet wurde.

Ich bin verloren, warum ruft mein Code den PrePersist nicht an?

hier ist die Entity-Datei

<?php 
namespace RaffleTools\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* 
* @Entity 
* @HasLifecycleCallbacks 
* @Table(name="raffleitems") 
**/ 
class RaffleItem 
{ 
    /** 
    * @var int 
    * @Id @Column(type="integer") @GeneratedValue 
    */ 
    protected $id; 

    /** 
    * @var string 
    * @Column(type="string") 
    */ 
    protected $name; 

    /** 
    * @var string 
    * @Column(type="string") 
    */ 
    protected $image; 

    /** 
    * @var \DateTime 
    * @Column(name="created_at", type="datetime") 
    */ 
    protected $createdAt; 

    /** 
    * @var \DateTime 
    * @Column(name="updated_at", type="datetime") 
    */ 
    protected $updatedAt; 

    /** 
    * @PrePersist 
    * @PreUpdate 
    */ 
    public function updatedTimestamps() 
    { 
     $this->setUpdatedAt(new \DateTime('now')); 

     if ($this->getCreatedAt() == null) { 
      $this->setCreatedAt(new \DateTime('now')); 
     } 
    } 

    public function getId() 
    { 
     return $this->id; 
    } 

    public function getName() 
    { 
     return $this->name; 
    } 

    public function setName($name) 
    { 
     $this->name = $name; 
    } 

    public function getImage() 
    { 
     return $this->image; 
    } 

    public function setImage($image) 
    { 
     $this->image = $image; 
    } 

    public function setCreatedAt(\DateTime $createdAt) 
    { 
     $this->createdAt = $createdAt; 
    } 

    public function getCreatedAt() 
    { 
     return $this->createdAt; 
    } 

    public function setUpdatedAt(\DateTime $updatedAt) 
    { 
     $this->updatedAt = $updatedAt; 
    } 

    public function getUpdatedAt() 
    { 
     return $this->updatedAt; 
    } 

    public function toArray() 
    { 
     return get_object_vars($this); 
    } 
} 

Vielen Dank im Voraus.

+0

Ich kam gerade heute zurück, und niedrig und siehe da funktioniert es ... – Zombiesplat

+0

gibt es irgendwo eine Art von Caching, die ich nicht bewusst bin? – Zombiesplat

Antwort

0

Leider war dies ein Tippfehler in der Config-Setup

$env = $injector->make(Env::class); 
$paths = array(__DIR__.'/../'); 
$isDevMode = isset($enf['DEVELOPMENT']); 

// the connection configuration 
$dbParams = array(
    'driver' => 'pdo_mysql', 
    'host' => $env['DB_HOST'], 
    'user' => $env['DB_USER'], 
    'password' => $env['DB_PASS'], 
    'dbname' => $env['DB_NAME'], 
); 

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode); 

in der Zeile, die $isDevMode = isset($enf['DEVELOPMENT']); $ env sagt ist falsch geschrieben und wieder falsch die ganze Zeit.

Verwandte Themen