2014-10-19 7 views
0

я застрял со странной ошибкойSymfony2 & Doctrine - колонка не вставлен

$thread->setTypeId($request->get('typeId')); 
$thread->setStatusId(ThreadStatus::DRAFT); 
$thread->setDateCreated(new \DateTime('now')); 

var_dump($thread); 
$this->em->persist($thread); 
$this->em->flush(); 

Я вставив значение ненулевого столбца «TypeID». Он установлен в $ request-> Get («TypeID»), var_dump показывает, что он находится в моей сущности, но вставка генерирует ошибку SQL

INSERT INTO threads (typeId, statusId, authorId, dateCreated, ...) VALUES (?, ?, ?, ?, ...)' with params [null, 1, 1, "2014-10-19 16:26:22", ...] 
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'typeId' cannot be null 

значение для TypeID устанавливается нулевой. Но почему? Что мне не хватает?

+0

установлен ли TypeID в auto_increment? –

+0

@HermannStephaneNtsamo нет '/ * * @ORM \ Column (имени = "TypeID", типа = "целого число") */ частного $ TypeID;' – vebbo

+0

запустить >>> 'PHP приложение/консоль доктрина: схема : update --force' Чтобы убедиться, что вы DB синхронизированы с вашими анотациями. –

ответ

1

Необходимо добавить nullable=true.

/** 
* @ORM\Column(name="typeId", type="integer", nullable=true) 
*/ 

private $typeId; 

Затем запустите: PHP приложения/консольные доктрины: схемы: обновление --force

+0

этот столбец не должен иметь значение NULL, но я решил решить эту проблему. Вместо того, чтобы устанавливать 'typeId', я устанавливаю' type' как объект из ссылочной таблицы. Теперь он отлично работает – vebbo

+0

Правильно, вам нужно сделать вот так :). –

Смежные вопросы