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

时间:2015-01-22 06:45:24

标签: php yii

<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-&gt; save()我的所有字段都已正确保存,但此复选框保存为数组。

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

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

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

但它保存为'array'。

1 个答案:

答案 0 :(得分:1)

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

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