に必要な類似したフォームフィールドのグループの1つを作る:私はこのように私のフォームに名前/電子メールフィールドの束を持ってCakePHPの
data[Friend][0][name]
data[Friend][1][name]
data[Friend][2][name]
など
と
data[Friend][0][email]
data[Friend][1][email]
data[Friend][2][email]
など
対応するフィールドが入力されているかどうかを確認するカスタム検証ルールがあります。データ[フレンド] [2] [名]、データ[フレンド]は、[2] [メール]は記入しなければならない場合
FYI、HERESに二つの規則のどの一つは次のようになります。
私のフォーム検証をルール:(私もメールの検証を持っていますが、それはここでは無関係です)
'name' => array(
'checkEmail' => array(
'rule' => 'hasEmail',
'message' => 'You must fill in the name field',
'last' => true
)
)
マイカスタムルールコード:私はペアの1のように充填する必要があるようにそれを行う必要があり
function hasEmail($data){
$name = array_values($data);
$name = $name[0];
if(strlen($name) == 0){
return empty($this->data['Friend']['email']);
}
return true;
}
最小。インデックスが対応している限り、任意の値にすることができます。
フォームルールを必須に設定するか、allowEmpty falseに設定するかのように、すべての空のフィールドで失敗するような方法はありません。 1ペアの存在を確認する方法はありますか?
また、私のsaveAll()は空の行のロードを保存しないように、残りの空の[フレンド]フィールドをすべて削除する必要がありますが、私のコントローラのextractを使ってその部分を処理できると思います。主な問題はこの検証です。ありがとう。