SQLSTATE [23000]: нарушение ограничения целостности: в Symfony - PullRequest
0 голосов
/ 11 июня 2018

Я делаю проект в Symfony.Для вставки статьи я установил следующие переменные:

 $article->setCategoryId($category_id);
 $article->setName($name);
 $article->setContent($description);
 $article->setStatus($publicity);
 $article->setCreatedOn(new \DateTime());
 $article->setCreatedBy($user->getId());
 //print_r($article); die;
 $em->persist($article);
 $em->flush();

Когда я пытаюсь напечатать объект $article, я получаю значение category_id очень хорошо.Но когда я пытаюсь сохранить его, он возвращает ошибку вроде:

"SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'category_id' не может быть пустым"

Это установщик в моей сущности:

/**
 * Set categoryId
 *
 * @param integer $categoryId
 *
 * @return HelpCenterArticle
 */
public function setCategoryId($categoryId)
{
    $this->categoryId = $categoryId;

    return $this;
}

Это моя сущность при выполнении print_r($article):

lpCenterBundle\Entity\HelpCenterArticle Object
(
    [id:HelpCenterBundle\Entity\HelpCenterArticle:private] => 
    [name:HelpCenterBundle\Entity\HelpCenterArticle:private] => fbfdb
    [slug:HelpCenterBundle\Entity\HelpCenterArticle:private] => 
    [content:HelpCenterBundle\Entity\HelpCenterArticle:private] =>  fbdsbf 
    [categoryId:HelpCenterBundle\Entity\HelpCenterArticle:private] => 4
    [createdOn:HelpCenterBundle\Entity\HelpCenterArticle:private] => 
        DateTime Object
        (
            [date] => 2018-06-11 09:58:32
            [timezone_type] => 3
            [timezone] => Europe/London
        )
)

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Объявлять обнуляемыми в вашей сущности

nullable=true

В сущности

 /**
  * @ORM\Column(name="category_id", type="integer", nullable=true)
  */
 private $categoryId;
0 голосов
/ 11 июня 2018

Это довольно просто

$article->setCategoryId($category_id);

параметр $ category_id является нулевым или пустым

, если вы хотите установить нулевое значение, обновите ORM category

nullable: true
...