在网络表单上,我有select-option字段。它必须提交值'card'(不带引号)或NULL值。
现在,代码如下所示:
$options = array(NULL => 'Invoice', 'card' => 'Payment card');
echo $this->Form->input('payment_method', array('options'=>$options));
如果选择了Invoice选项,我如何定义options数组,在数据库表中提交NULL值(和/或'card',但当然有效)?
提前谢谢!
答案 0 :(得分:4)
NULL是关联数组的无效键。只有'整数'和'字符串'才是有效的数组键,请参阅文档:Arrays
要通过表单发送空值,可以使用空字符串。要强制在数据库中插入NULL值,请在保存
之前在模型或控制器中处理此值$options = array('' => 'Invoice', 'card' => 'Payment card');
echo $this->Form->input('payment_method', array('options'=>$options));
然后在你的控制器内;
if ('' === $this->request->data['MyModelName']['payment_method']) {
this->request->data['MyModelName']['payment_method'] = null;
}
但是,为什么不使用值作为“发票”付款方式?像这样:
echo $this->Form->input('payment_method', array(
'options' => array(
'' => 'Select your payment method..',
'invoice' => 'Invoice',
'card' => 'Payment card',
)
));
IMO这有一些优点;