例えば
echo $this->Form->input('user_id', array(
'label' => '担当者',
'multiple' => 'checkbox',
'options' => $userList,
));
こんなフォームを書いていたとして、notemptyでは検証できない。
こういう時は、multipleを使う。
今までもこうしたバリデーションを書いたことがあるはずなのに、初めて目にするような衝撃だった。
ヤバイ。疲れてる。
public $validate = array(
'user_id' => array(
'notempty' => array(
'rule' => array('multiple'),
'message' => '担当者は必ず1人以上選択してください',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
参考:Data Validation ? CakePHP Cookbook v2.x documentation
Do not use this for a multiple select input as it will cause an error. Instead, use “multiple”.
