CakePHP未填充单选按钮在提交时更改为不需要的值
发布时间:2020-12-13 22:31:01 所属栏目:PHP教程 来源:网络整理
导读:我有这个表单元素: $form-input('ChecklistResponseGovernmentInfo.driversLicenseIsOnline',array('type'='radio','empty'= true,'options'=array(0 = 'No',1 = 'Yes'))) 这是它的验证规则: 'driversLicenseIsOnline' = array( 'boolean' = array( 'rule'
我有这个表单元素:
$form->input('ChecklistResponseGovernmentInfo.driversLicenseIsOnline',array('type'=>'radio','empty'=> true,'options'=>array(0 => 'No',1 => 'Yes'))) 这是它的验证规则: 'driversLicenseIsOnline' => array( 'boolean' => array( 'rule' => array('boolean'),'allowEmpty' => false,), 这是它的数据库字段(MySQL): `driversLicenseIsOnline` tinyint(1) unsigned NOT NULL 当我第一次加载表单的新副本时,单选按钮组被取消选中.如果我在没有做任何其他事情的情况下提交表单,当表单重新加载时,单选按钮将填入“否”,并且验证flash消息显示“此字段不能留空”. 当我停止使用零(0)作为“否”的值时,问题就消失了,但是我希望Cake将此值存储为布尔值,而不是我必须手动来回转换为布尔值的其他值. 如果在没有选择收音机的情况下提交,则如何阻止Cake自动填写此元素的值? 解决方法
在我自己寻找答案的同时偶然发现了这个问题.
这个令人讨厌的黑客为我修复了它(在CakePHP 2.1中 – 应该在1.3中工作): 验证失败后,取消设置$this-> request->数据中的值,如果它为空: if ($this->Model->save($this->request->data) { // data saved } else { // data failed to save // unset radio if empty if ($this->request->data['Model']['radio_field'] == "") { unset($this->request->data['Model']['radio_field']; } } 啊. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |