2015-09-23 49 views
2

空字符串我有Yii2模型試圖保存空空值,而不是空字符串的問題。據我不空MySQL列,我得到MySQL錯誤。在Yii 1中有一個配置選項'nullConversion'=> PDO :: NULL_EMPTY_STRING。我如何在Yii2中達到同樣的效果?只需要ORM將空值保存爲「',而不是空值。由於空在Yii2

回答

0

Yii2默認不轉換null爲空字符串。如果您不想到一個空自動轉換到那麼一個空字符串:

  • 檢查你的代碼,並確保字段包含null調用save方法之前。
  • beforeSave不應替代領域。
  • PDO::NULL_TO_STRING不應設置。

另請參閱this問題。

如果你想想要自動將空字符串轉換爲空字符串,然後在'db'組件中設置PDO::NULL_TO_STRING

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

所以,我怎麼可以讓它自動轉換爲null,空字符串? – Volodymyr

+0

@Volodymyr我更新了我的答案。 –

+0

接縫喜歡它不起作用 – Volodymyr

1

你可以嘗試不同的方法來解決這個問題,使用規則:

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

這樣你可以有一些字段默認爲空字符串,而不是空,在不影響各個領域。

+0

是的,但是在整個網站上做這件事會是一個更好的方法。 – Volodymyr

+0

這實際上取決於,特別是如果你實際上需要一些字段默認爲null。 – marche

2

爲了自動MySQL的NULL轉換爲空字符串在Yii2,使用此 -

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

不知道它是如何工作的,但它確實......不是被接受的。 +1。 – Gogol

+0

這應該是正確的答案 – myatmins