我想设置一个规则来限制访问者可以在多个选择字段中选择的选项数。
我试过了,但它没有用
$validator
->add('colors._ids', [
'multiple'=>[
'rule'=>['multiple', ['max'=>3]],
'message'=>'Please select only one color'
]
])
->requirePresence('colors._ids', 'create');
// ->allowEmpty('colors._ids');
return $validator;
在视图中,字段显示如下:
echo $this->Form->input('colors._ids', ['options' => $colors, 'multiple' => true]);
使用debugtoolkit我可以阅读:
非常感谢您的帮助
答案 0 :(得分:2)
我遇到了类似的问题,为了解决这个问题,我最终使用了custom validation rule。
例如:
->add('tablename', 'custom', [
'rule' => function($value) {
return (bool)(is_array($value['_ids']) && count($value['_ids']) === 3);
},
'message' => 'Please select 3.'
]);
此规则将确保用户从选择中选择3个项目。不多也不少,我相信你可以根据你的问题调整它。