在Yii2中为空字符串为空

时间:2015-09-23 13:58:25

标签: string null yii2

我有一个问题,Yii2模型试图将空值保存为空,而不是空字符串。至于我没有null mysql列,我收到mysql错误。在Yii 1中有一个配置选项' nullConversion' => PDO :: NULL_EMPTY_STRING。我怎样才能在Yii2中实现同样的目标?只是希望ORM将空值保存为'',而不是null。感谢

3 个答案:

答案 0 :(得分:2)

为了在Yii2中自动将mysql NULL转换为空字符串,请使用此 -

'db' => [
    'dsn' => 'mysql:host=127.0.0.1;dbname=database',
    'attributes' => [
        PDO::ATTR_ORACLE_NULLS => PDO::NULL_TO_STRING
    ]
],

答案 1 :(得分:1)

您可以尝试使用其他方法来解决此问题:

public function rules() {
    return [
        ...
        [['field1', 'field2'], 'default', 'value' => ''],
        ...

这样,您可以将某些字段默认为空字符串而不是空字符,而不会影响所有字段。

答案 2 :(得分:0)

默认情况下,Yii2不会将null转换为空字符串。如果您不希望它自动将null转换为空字符串,那么:

  • 在调用null方法之前,请检查您的代码并确保该字段包含save
  • beforeSave不应替换字段。
  • PDO::NULL_TO_STRING不应设置。

另见this问题。

如果想要自动将null转换为空字符串,请在' db'中设置PDO::NULL_TO_STRING。成分

    'db' => [
        'dsn' => 'mysql:host=127.0.0.1;dbname=database',
        'attributes' => [
            PDO::NULL_TO_STRING => true
        ]
    ],