复选框错误地保存为“数组”


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 等等......

但它被保存为"数组"。

将其添加到模型中以将爱好保存为字符串:

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