存储的数据无法在Yii

时间:2015-07-04 13:16:11

标签: php mysql yii

我在Yii中创建了表单。在那里,我创建了多个复选框。例如:Fav Sports= Football,Cricket,Baseball
当我选中所有复选框时,它会将记录存储到数据库中。为了存储我使用"json_encode($_POST['UserInfo']['sports']);"的数据。然后它将以这种格式["Football"]["Cricket"]["Baseball"]存储数据。

我的问题是,当我更新表单页面时,所有文本字段或控件都有值,但取消选中fav体育的复选框,因为我无法访问["Football"]["Cricket"]["Baseball"]的数据。如何在Yii中从数据库访问这些记录。

1 个答案:

答案 0 :(得分:0)

您的模型覆盖以下功能: -

public function beforeSave() {

    $this->sports = CJSON::encode($this->sports);
    return true;
}

public function afterSave() {

    $this->sports = CJSON::decode($this->sports, TRUE);
    return true;
}

public function afterFind() {
    $this->username = CJSON::decode($this->username, TRUE);
    return true;
}

在你的视图中

<p class="note">Fields with <span class="required">*</span> are required.</p>
<div class="row">

<?php echo $form->checkBoxList($model, 'sports', array('Football' => 'Football', 'Cricket' => 'Cricket','Baseball' => 'BaseBall')); ?>
</div>