【问题标题】:How to save entity in DB with empty string value如何使用空字符串值将实体保存在数据库中
【发布时间】:2014-05-29 09:07:32
【问题描述】:

我有一个具有属性的实体:

/**
 * @var string The title attr
 *
 * @ORM\Column(type="string", length=255)
 */
protected $title = '';

表格类型为:

    $builder
        ->add('title', 'text', array(
            'required' => false,
        ))

但是当我从form 获得这个空值并尝试将此实体保存到数据库时,我收到以下错误:

SQLSTATE[23000]:违反完整性约束:1048 列“标题” 不能为空

为什么是null?我将此属性设置为空字符串'',而不是null

如何使用空字符串''(不带@ORM\Column(type="string", length=255, nullable=true))将此实体存储在数据库中?

【问题讨论】:

    标签: php forms symfony doctrine-orm entity


    【解决方案1】:

    将默认列值设置为空字符串:

    /**
     * @var string The title attr
     *
     * @ORM\Column(type="string", length=255, options={"default":""})
     */
    protected $title = '';
    

    【讨论】:

    • 与我无关,但非常巧妙的解决方案:)
    • 我尝试这样做,但它对我不起作用。我认为这是因为我从form 获得了title 值,我更新了问题,添加了表单类型。
    • @Victor 那么设置empty_data怎么样?
    • @bartek 仅在我使用空间时工作:'empty_data' => ' ',,但是当我使用空字符串时'' 错误是一样的
    • @ferodss 不,这是教义映射
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2021-09-01
    • 2019-04-30
    • 1970-01-01
    相关资源
    最近更新 更多