我正在調查CakePHP的(2.3.4)型號::保存方法將新記錄保存期間允許部分空白數據,跑了一個小障礙:CakePHP的型號::記錄插入
//Two fields provided, email field intended to fail validation
$data = array('Member' => array(
'username' => 'hello',
'email' => 'world'
));
$this->Member->create();
var_dump($this->Member->save($data, true));
上述保存()將返回false,並且沒有數據將被寫入數據庫。但是,如果我將數據更改爲:
//One field provided, intended to pass validation
$data = array('Member' => array(
'username' => 'hello'
));
然後save()將嘗試使用空白電子郵件字段向數據庫寫入新記錄。我意識到,在更新期間跳過對未指定字段的驗證可能是一種有用的行爲,但是在創建新記錄時,有沒有CakePHP推薦的方法來處理部分空的數據集?非常感謝。
編輯: 感謝Sam Delaney的提示。如果任何人被難倒,這並獲得成功:CakePHP Data Validation: field 'required' key
此鍵可以接受一個布爾值,或創建或更新。將此鍵設置爲true將使該字段始終是必需的。將其設置爲創建或更新將使該字段僅用於更新或創建操作。 如果'required'被評估爲true,則該字段必須存在於數據數組中。例如,如果驗證規則被定義如下:
我原本烤的模型,並忘記了required => true
被冷落的驗證規則。將它設置爲true
或'create'
可以避免由於亂碼數據數組而導致插入空白記錄。
謝謝,所需的標誌絕對是我正在尋找的。您對所佈置的場景是正確的,並且我在模型更新期間使用過此行爲。我遇到的問題是將隨機無意義的數據發佈到操作中,跳過驗證並創建了一堆空記錄。設置required => true肯定會強制驗證數據數組中缺少的字段。 – Dedy 2013-05-02 07:43:02