複数のフィールドを 1 か所で検証したい。したがって、次のように4つのフィールドをフォームに含めました
- facebook_link
- twitter_link
- google_plus_link
- linked_in_link
ユーザーは少なくとも上記のいずれかのフィールドを入力します。ユーザーがフォームにリンクのいずれかを入力するなどの解決策を得るのを手伝ってください。
複数のフィールドを 1 か所で検証したい。したがって、次のように4つのフィールドをフォームに含めました
ユーザーは少なくとも上記のいずれかのフィールドを入力します。ユーザーがフォームにリンクのいずれかを入力するなどの解決策を得るのを手伝ってください。
独自の検証方法を追加できます。
public $validate = array(
'facebook_link' => array(
'rule' => array('validateLink'),
'message' => '...'
),
'twitter_link' => array(
'rule' => array('validateLink'),
'message' => '...'
),
'google_plus_link' => array(
'rule' => array('validateLink'),
'message' => '...'
),
'linked_in_link' => array(
'rule' => array('validateLink'),
'message' => '...'
),
);
public function validateLink($link) {
$allFieldsAreEmpty = (
empty($this->data[$this->alias]['facebook_link']) &&
empty($this->data[$this->alias]['twitter_link']) &&
empty($this->data[$this->alias]['google_plus_link']) &&
empty($this->data[$this->alias]['linked_in_link'])
);
return !$allFieldsAreEmpty;
}
これがうまくいくことを願っています。
public $validate = array(
'facebook_link' => array(
'rule' => array('customValidation','facebook_link'),
'message' => 'Please enter facebook link.'
),
'twitter_link' => array(
'rule' => array('customValidation','twitter_link'),
'message' => 'Please enter twitter link.'
),
'google_plus_link' => array(
'rule' => array('customValidation'),
'message' => 'Please enter google plus link.'
),
'linked_in_link' => array(
'rule' => array('customValidation'),
'message' => 'Please enter linkedin link.'
),
);
function customValidation($data , $filed) {
if(empty($data[$filed])) {
return false;
}
return true;
}