我有以下問題:
我需要驗證控制器中的數據,該數據由窗體傳遞。特別之處:表單中的字段不在數據庫中,但在$ validate-Array中。 - 哪一個應該不成問題。
另一件事是,該模型與這種形式的部分有hasMany-關係。cakePHP:驗證控制器中的數據(hasMany)
Text hasMany Proofs
這是驗證陣列:
var $validate = array(
'freetext' => array(
'between' => array(
'rule' => array('between', 250, 1000),
'message' => '..',
),
),
);
這裏是傳遞給控制器的數據的一個例子
[Proof] => Array
(
[0] => Array
(
[freetext] => asd
)
[1] => Array
(
[freetext] => asd
)
[2] => Array
(
[freetext] => asd
)
)
我使用以下代碼來驗證:
$this->Texts->set($this->data);
if ($this->Texts->validates()) {
當我打電話給它時,它重新變成真,所以驗證成功。但是freetext有少於250個字符。
但:表單表示紅色星號,象徵我,驗證陣列被成功地解析了一個施加到形式。
而且在相應的控制器beforeValidate() { debug($this->data); }
顯示正確的數據。
那麼,爲什麼數據驗證成功,即使政策是不是我?提前
謝謝!
〜MxAgent
我相信你的模型調用應該是單數,而不是複數 - 「文本」,而不是「文本」。另外,不是'beforeValidate()'模型方法,而不是控制器操作? – Dave
這是因爲我改變了一些名稱,由於明智的數據.. – Micronax
這是一個問題,該字段不存在於表中,但在驗證數組和表單中。我需要處理的數據,用戶輸入的,然後部分地寫入到另一個字段.. – Micronax