2012-11-19 41 views
2

使用CakePHP 1.3如果沒有在表單字段中寫入任何內容,我希望爲字段保存一個0值。最好的辦法是在MySQL中做到這一點,但沒有成功。我已經tryed設置:CakePHP保存默認的0值

Null = noDefault = 0;或Null = yesDefault = 0;

而且二者組合使用CakePHP行爲其設定組合beforeSavebeforeValidate

$model->data[$name][$field] = 0;unset($model->data[$name][$field]);

也:

Nullyes =和Default = 0;或Null = yesDefault = NULL;

始終查詢是:

INSERT INTO `table` (`zero_field`, `other_fields`) VALUES (NULL, 'other_data') 
or 
INSERT INTO `table` (`zero_field`, `other_fields`) VALUES ('', 'other_data') 

如果Null = no得到一個錯誤:Column 'zero_field' cannot be null

即使我取消設置現場我得到裏面的字段查詢。

如何在數據庫中保存0值,如果其格式未設置或爲空?

zero_fieldint(11)

+0

零域添加到系統中的值是多少?那是什麼? –

+0

你是如何檢查空的?你如何檢查NULL? –

+0

您確實需要發佈您的Cake代碼,以便我們可以看到您如何執行保存。你可能會強迫它以一種不允許零值通過的方式進行保存。此外,如果根本沒有任何內容被保存到數據庫中,也許您的模型驗證沒有設置爲允許該字段的值爲零,因此驗證失敗並且保存從不發生。 – BadHorsie

回答

0
  1. 設置空=無,默認值= 0你的領域在數據庫應用
  2. 清除模型緩存文件的/ tmp /緩存/模型/ *
  3. 一定要在保存新記錄之前使用Model-> create(),以便填充要用缺省值保存的新記錄。
  4. 保存並贏取。