cakephp - 需要几个值之一
问题描述
我有一个包含 5 个布尔列的表。我想强制用户至少选择一个。有没有办法使用$validator
Table PHP 中的 CakePHP 对象来做到这一点?
我可以很容易地在控制器中完成此操作,但使用内置的东西似乎不太错误。文档中的任何内容都没有引起我的注意。.
控制器示例:
if (false === $val1 === $val2 === $val3 === $val4 === $val5){
//return with error
}
解决方案
这似乎是规则的情况,而不是验证。
public function buildRules(RulesChecker $rules) {
$rules->add(function (EntityInterface $entity, Array $options) {
return $entity->val1 || $entity->val2 || $entity->val3 || $entity->val4 || $entity->val5;
}, 'selectOne', [
'errorField' => 'val1',
'message' => __('You must select at least one of these fields.'),
]);
return $rules;
}
推荐阅读
- java - HTTP POST Angular 到 Java。无法发送不同类型的多个参数
- docker - 在容器上运行 docker 映像时,找不到 restart.sh 文件
- java - 为什么我可以在 Groovy 的 List 接口中使用方法 'each'?
- jenkins - 如何以编程方式将插件添加到詹金斯
- excel - Application.CommandBars("vbaPopup").ShowPopup ··· 如何添加`Submenu` (Ron de Bruin)?
- reactjs - 带有 flex 的 instagram 中的新闻提要只有 8 个孩子?
- ruby-on-rails - 在 Rails 中扩展资源路径
- python - 尝试在 desktop.ini 文件上写入时如何修复 Python 中的 PermissionError?
- python - 在Python中计算两个数字之间不匹配的共享数字
- excel - 如何使高级过滤器将一行数据复制到范围?