(CakePHP のモデル検証を使用して) データを検証して、少なくとも「a」または「b」にデータがあることを確認する方法はありますか (両方にデータがある必要はありません)。
1371 次
3 に答える
4
あなたのモデルで、このようなことをしてください。この関数は、保存操作を実行するときに呼び出されます。
編集済み
public $validate = array(
'a' => array(
'customCheck' => array(
'rule' => 'abCheck',
'message' => 'You must enter data in a or b.'
)
),
'b' => array(
'customCheck' => array(
'rule' => 'abCheck',
'message' => 'You must enter data in a or b.'
)
)
);
//Function must be public for Validator to work
//Checks to see if either a or b properties are set and not empty
public function abCheck(){
if((isset($this->data['Model']['a']) && !empty($this->data['Model']['a'])) || (isset($this->data['Model']['b']) && !empty($this->data['Model']['b']))){
return true;
}
return false;
}
于 2011-06-02T01:00:23.637 に答える
1
「カスタム検証」を通じてこれらの条件を検証できます。
これを参照してください:独自の検証を追加する
于 2011-06-01T17:15:49.540 に答える
0
代わりにこれを試してください:
public $validate = array(
'a' => array(
'customCheck' => array(
'rule' => array('abCheck', 1),
'message' => 'You must enter data in a or b.'
)
),
'b' => array(
'customCheck' => array(
'rule' => array('abCheck', 1),
'message' => 'You must enter data in a or b.'
)
)
);
//Function must be public for Validator to work
//Checks to see if either a or b properties are set and not empty
public function abCheck(){
if((isset($this->data['Model']['a']) && !empty($this->data['Model']['a'])) > || (isset($this->data['Model']['b']) && !empty($this->data['Model']['b']))){
return 1;
}
return -1;
}
于 2012-07-13T11:28:29.123 に答える