Я добавил поддержку Timestampable
в свою сущность следующим образом: use Gedmo\Timestampable\Traits\TimestampableEntity;
. Я обновил свою БД, запустив doctrine:schema:update --force
, но каждый раз, когда я пытаюсь вставить новую запись, я получаю это сообщение:
SQLSTATE [23502]: ненулевое нарушение: 7 ОШИБКА: нулевое значение в столбце «создано в» нарушает ограничение ненулевого значения
Почему? Я использую последнюю версию Symfony 2.5.3 и PostgreSQL 9.2.9. Это полная ошибка:
Произошло исключение при выполнении «INSERT INTO usuarios_externos.usuarios (имя пользователя, имя_пользователя_каноническое, электронная почта, электронная почта_каноническая, включено, соль, пароль, последний_логин, заблокировано, истек, истекает_в, подтверждение_токен, пароль_запрошенный_ат, роли, учетные данные_истекший срок действия, учетные данные_expire_at, идентификатор, персона, correo_alternativo, telefono, telefono_movil, факс, pagina_web, направление, deleteAt, createdAt, updatedAt, pais_id, estado_id, municipio_id, ciudad_id, parroquia_id) ЗНАЧЕНИЯ (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' с параметрами ["renier", "Ренье", "[email protected]", "[email protected]", "ложь", "hhm95if1uog88koggos48csk48k0w80", "sVzbTOHgZzhU92zPHBFsVG3GqV + DO5xvXxvNdC5 / GVJ / Hnvlm8rBsNDsIgPKYXdZ4NcnONqXnrOB6UR + lAluAw ==", NULL, "ложь", «ложь ", null, null, null, "a:0:{}", "false", null, 3, "true", "[email protected]", "021245678999", "", "", "", "sadasdasd", null, null, null, 23, 1, 1, 1, 22]
Любой совет?
Добавлен объект
<?php
use FOS\UserBundle\Model\User as BaseUser;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="usuarios_externos.usuarios", schema="usuarios_externos")
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
*/
class Usuario extends BaseUser
{
....
/**
* @var datetime $created
*
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/
private $created;
/**
* @var datetime $updated
*
* @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime")
*/
private $updated;
/**
* @ORM\Column(name="deletedAt", type="datetime", nullable=true)
*/
protected $deletedAt;
....
public function getCreated()
{
return $this->created;
}
public function getUpdated()
{
return $this->updated;
}
public function setDeletedAt($deletedAt)
{
$this->deletedAt = $deletedAt;
}
public function getDeletedAt()
{
return $this->deletedAt;
}
}
Timestampable
, но я провел некоторое исследование, и я знаю, что PostgreSQL обрабатывает отметку времени, отличную от MySQL, как сказано здесь или здесь даже если я проверяю столбцы в БД, у них нет значений по умолчанию, в MySQL они есть - person ReynierPM   schedule 21.08.2014