【发布时间】:2011-06-02 19:01:33
【问题描述】:
我不知道如何在 Yii 中正确保存复选框值。我有一个 MySQL 列 active,定义为 tinyint。我有以下表单创建代码,如果值为 1,则正确显示复选框为选中,如果值为 0,则未选中:
<?php echo $form->labelEx($model,'active'); ?>
<?php echo $form->checkBox($model,'active'); ?>
<?php echo $form->error($model,'active'); ?>
并且用于正确保存表单的代码会更改其他基于文本的值:
public function actionUpdate($id)
{
$model=$this->loadModel($id);
if(isset($_POST['Thing']))
{
$model->attributes=$_POST['Thing'];
if($model->save())
$this->redirect(array('thing/index'));
}
$this->render('update',array(
'model'=>$model,
));
}
active 的值未保存。我哪里错了?
【问题讨论】:
-
您看到的错误是什么?在
$model->attributes=$_POST['Thing'];之后,$model->active 的值是多少?当前与活动字段相关联的验证器是什么(参见 rules() 函数)?你试过用 Gii 自动生成 CRUD 操作,这样你就可以比较代码了吗? -
谢谢安东尼,我没有意识到每个输入都需要规则。我加了
array('active', 'boolean'),问题解决了。
标签: yii