这对我有用。希望它也对你有用
这是我的ctp文件代码
$this->Form->input('answertype',array('div'=>false,'label'=>false,'type'=>'select','multiple'> => 'checkbox', 'options' => $arrayOptions, 'class' => 'form-control dropdown-menu-item '));
当我在控制器中调试时,我得到了这样的结果
array(
'PackageDescription' => array(
'name' => 'Special Di scout Package',
'question' => '20',
'revision' => '32',
'experttype' => '100',
'responsetime' => '6',
'answertype' => array(
(int) 0 => 'image',
(int) 1 => 'audio'
),
'support' => 'email&sms',
'status' => 'public'
)
)
我在我的模型中进行了一些更改以将任何数组存储为字符串
public function beforeSave($options = array()) {
if(!empty($this->data[$this->alias]['answertype']) && $this->data[$this->alias]['answertype'] != ''){
$subArr = $this->data[$this->alias]['answertype'];
$this->data[$this->alias]['answertype'] = implode(',', $this->data[$this->alias]['answertype']);
$my_model = ClassRegistry::init('Answer');
$AnswerInfo = $my_model->find('all', array('conditions' => array('Answer.name' => $subArr), 'fields' => array('Answer.name', 'Answer.name')));
if(!empty($AnswerInfo)){
$answertype = array();
foreach($AnswerInfo as $info){
$answertype[] = $info['Answer']['name'];
}
$this->data[$this->alias]['answertype'] = implode(',', $answertype);
}
}
if (!empty($this->data[$this->alias]['name']) && empty($this->data[$this->alias]['slug'])) {
if(!isset($this->data[$this->alias]['id'])){
$this->data[$this->alias]['slug']=$this->stringToSlug($this->data[$this->alias]['name']);
}else{
$this->data[$this->alias]['slug']=$this->stringToSlug($this->data[$this->alias]['name'],$this->data[$this->alias]['id']);
}
}
return true;
}