モデル内から配列を手動で検証しようとしていますが、配列に入力された無効なデータに関係なく、検証は成功します。
私は$のデータを検証しようとしています私のCustomerLocationモデルで:
$this->create();
$this->set($data);
if (!$this->validates()){
//some action if validation fails
}
この場合は$データは単純な配列である:
Array
(
[location_number] => 125-Knoxville - M
[packing_notes] => Test
[packing_label_message] => packing message
[length] => 4
[width] => 4
[height] => 4
[weight] => 4
[shipping_carrier] => UPS
[shipping_service] => 2nd Day Air
[ship_date] =>
[id] => 768
[row] => 4
)
上記の$データが必要なのどれもが含まれていませんCustomerLocationモデルのフィールドは完全に検証に失敗するはずです。
この$ dataのソースは、インポートされた.csv行です。このモデルのベークドケーキフォームから検証すると、検証が機能します。
$ this-> validatesの$ data配列が正しくフォーマットされていませんか?そうであれば、私はそれが失敗するのではなく、失敗すると予想します。
ご了承ください。
$this->set(array('CustomerLocation' => $data));
CakePHPは妥当性を検証するためにどのモデル(複数可)を決定するために、配列の最初のレベルを使用しています。一見
あなたの検証ルールは何ですか?私はあなたの間違いがあると確信しています – mark
あなたの検証ルールを見ることなく、おそらく@markが得ている検証ルールに '必須'オプションを追加する必要があると推測しています。 http://book.cakephp.org/1.3/en/view/1145/One-Rule-Per-Field – Joep