【问题标题】:SQLSTATE[23000]: Integrity constraint violation: in symfonySQLSTATE[23000]:违反完整性约束:在 symfony 中
【发布时间】:2018-06-11 08:49:39
【问题描述】:

我正在 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
        )
)

【问题讨论】:

  • 您能告诉我们您实体中的 categoryId 属性吗?
  • /** * @var int * * @ORM\Column(name="category_id", type="integer") */ private $categoryId;

标签: symfony insert symfony-forms


【解决方案1】:

在您的实体中声明可为空

nullable=true

在实体中

 /**
  * @ORM\Column(name="category_id", type="integer", nullable=true)
  */
 private $categoryId;

【讨论】:

  • 然后使用@Assert 验证 category_id 字段
【解决方案2】:

其实很简单

$article->setCategoryId($category_id);

参数$category_id为空或为空

如果你想设置 null 值然后更新 ORM category

nullable: true

【讨论】:

    猜你喜欢
    • 2014-08-18
    • 2015-03-19
    • 2015-11-27
    • 2017-09-11
    • 2015-01-20
    • 2015-07-17
    • 2021-03-08
    • 2021-07-23
    相关资源
    最近更新 更多