Cakephp 3 如何在多个 select 中设置 selected 选项的最大数量?
Cakephp 3 how to set maximum number of selected option in multiple select?
我想设置一个规则来限制访问者在一个字段中可以 select 的选项数量 select。
我试过了,但是没用
$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 我可以阅读:
- _serialize(数组)
- 汽车(数组)
- 新(真)
- 可访问(数组)
- 属性(数组)
- 脏(数组)
- 原始(空)
- 虚拟(空)
- 错误(数组)
- colors._ids(数组)
- _required 此字段为必填项
- 仓库汽车
- 用户(数组)
- 颜色(数组)
非常感谢您的帮助
我遇到了与您类似的问题,为了解决它,我最终使用了 custom validation rule。
例如:
->add('tablename', 'custom', [
'rule' => function($value) {
return (bool)(is_array($value['_ids']) && count($value['_ids']) === 3);
},
'message' => 'Please select 3.'
]);
此规则将确保用户 select 的 3 个项目来自 select。不多也不少,我相信你可以根据你的问题调整它。
我想设置一个规则来限制访问者在一个字段中可以 select 的选项数量 select。
我试过了,但是没用
$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 我可以阅读:
- _serialize(数组)
- 汽车(数组)
- 新(真)
- 可访问(数组)
- 属性(数组)
- 脏(数组)
- 原始(空)
- 虚拟(空)
- 错误(数组)
- colors._ids(数组)
- _required 此字段为必填项
- 仓库汽车
- 用户(数组)
- 颜色(数组)
非常感谢您的帮助
我遇到了与您类似的问题,为了解决它,我最终使用了 custom validation rule。
例如:
->add('tablename', 'custom', [
'rule' => function($value) {
return (bool)(is_array($value['_ids']) && count($value['_ids']) === 3);
},
'message' => 'Please select 3.'
]);
此规则将确保用户 select 的 3 个项目来自 select。不多也不少,我相信你可以根据你的问题调整它。