复选框错误地保存为 'array'

Checkbox incorrectly saved as 'array'

<div class="col-md-5">
      <input id="ytAdd_Employee_varHobbies" type="hidden" value="" name="Add_Employee[varHobbies]">
      <span id="Add_Employee_varHobbies">
      <input id="Add_Employee_varHobbies_0" value="5" type="checkbox" name="Add_Employee[varHobbies][]">
      <label for="Add_Employee_varHobbies_0">BaseBall</label>
      <br>
      <input id="Add_Employee_varHobbies_1" value="2" type="checkbox" name="Add_Employee[varHobbies][]">
      <label for="Add_Employee_varHobbies_1">Football</label>
      <br>
      <input id="Add_Employee_varHobbies_2" value="4" type="checkbox" name="Add_Employee[varHobbies][]">
      <label for="Add_Employee_varHobbies_2">Hockey</label>
      <br></div>

这里我有多个复选框作为数组,名称为 Add_Employee[varHobbies][]

在控制器中我将表格保存为

$model->attributes=$_POST['Add_Employee'];
     //print_r($model);exit;
     $image_upload=$model->Image = CUploadedFile::getInstance($model,'Image'); 

     if( $model->validate() && $model->save())
     {  }

通过使用 $model->save(),我所有的字段都被正确保存,但是这个复选框被保存为数组。

在我的模型中,我将规则设置为

array('varHobbies', 'type', 'type' => 'array', 'allowEmpty' => false),

我想将爱好保存为1,2,3等等....

但是保存为'array'。

将此添加到您的模型以将爱好保存为字符串:

protected function beforeSave() {
parent::beforeSave();
$this->varHobbies = implode(',', $this->varHobbies);
return $this;
}