我有多个复选框的以下代码..
echo $this->Form->input('type', array('type' => 'select', 'multiple' => 'checkbox','options' => array(
'client' => 'Client',
'vendor' => 'Vendor',
'employee' => 'Employee'
)
));
当我选择多个选项并提交表单时,出现以下错误:“字段列表中的未知列'数组'”。我想保存复选框的值。
答案 0 :(得分:2)
您需要将多个复选框中的结果array
编码为string
,然后再将其保存到数据库中。
在这种情况下,它可能最简单到implode()
数组,但是数据更结构化(即嵌套数组,关联数组),你也可以使用像json_encode()
这样的东西。
var_dump($this->data);
/*
array
'Model' =>
array
'type' =>
array
0 => string 'client' (length=6)
1 => string 'vendor' (length=6)
*/
$this->data['Model']['type'] = implode(',', $this->data['Model']['type']);
var_dump($this->data);
/*
array
'Model' =>
array
'type' => string 'client,vendor' (length=13)
*/
当您在单个列中存储多个值时,这将使查询数据库变得更加困难(并且更慢)。
$this->Model->find('all', array(
'conditions' => array(
'type LIKE' => '%vendor%'
)
));
答案 1 :(得分:1)
看起来您正在尝试存储一些HABTM信息。如果是这种情况,请查看本教程:http://mrphp.com.au/code/working-habtm-form-data-cakephp。
如果您需要更多帮助,我们需要查看一些代码,例如模型和保存记录的控制器代码。