我在Yii中创建了表单。在那里,我创建了多个复选框。例如:Fav Sports= Football,Cricket,Baseball
当我选中所有复选框时,它会将记录存储到数据库中。为了存储我使用"json_encode($_POST['UserInfo']['sports']);"
的数据。然后它将以这种格式["Football"]["Cricket"]["Baseball"]
存储数据。
我的问题是,当我更新表单页面时,所有文本字段或控件都有值,但取消选中fav体育的复选框,因为我无法访问["Football"]["Cricket"]["Baseball"]
的数据。如何在Yii中从数据库访问这些记录。
答案 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>