私のデータベースの町/市のフィールドで簡単な検証を行っています。これはモデルに適用されています。都市と町の両方のフィールドを見ることができるので、最低3文字の長さが必要です。空でもかまいません。CakePHPモデル検証、可能な2の1フィールドをチェックするとテキストが表示されます
しかし、このフィールドのフォームに人が記入すると、町や都市だけでなく、その両方が表示されます。これらのフィールドのうちの1つだけを完了する必要があるように、検証でチェックを作成するにはどうすればよいですか?私は明らかに両方のフィールドで 'allowEmpty' => trueではないので、どうすれば実装できますか?
検証ルール:
'town' => array(
'rule' => array('minLength', 3),
'allowEmpty' => false,
'message' => 'Must have town'
) ,
'city' => array(
'rule' => array('minLength', 3),
'allowEmpty' => false,
'message' => 'Must have city'
) ,
任意の提案ですか?
function eitherOr(&$data, $orFields = array()) {
foreach ($orFields as $orField => $orValue) {
if (!empty($orValue)) {
unset($this->validationErrors[key($data)]);
}
}
return true;
}
はその後、あなたの検証ルールに追加します。
[this post](http://stackoverflow.com/questions/9719033/validation-for-at-least) -one-phone-number-is-in-cakephp) – Ross