如何在yii框架中显示数据库中新添加的列?

时间:2012-10-24 00:22:02

标签: php yii

我在我的db表中添加了两个新列,然后我在表模型本身中定义了这些新列,然后,当我调用

$model->getAttributes()

这两个新列没有出现在$model->getAttributes() method call

的数组输出中

我的配置中没有设置架构缓存, 任何想法如何解决这个?,以及我将如何获得输入表单的价值 如果我在展示两个新添加的列时出现问题,那么前端新添加的列是什么?

例如

新专栏          室内          外屋

//视图

 <?php echo $form->checkBox($model,'INHOUSE',array("id"=>"inhouse","value"=>1, "uncheckValue"=>0));?>
 <?php echo $form->checkBox($model,'OUTHOUSE',array("id"=>"outhouse","value"=>1, "uncheckValue"=>0));?>

//控制器更新操作

我试图保存INHOUSE的值,OUTHOUSE在我做的时候没有保存

$model->attributes = $_POST['users'];
$model->save();

NOR

$model->INHOUSE = $_POST['users']['INHOUSE'];
$model->OUTHOUSE = $_POST['users']['OUTHOUSE'];
$model->save;

如何解决所有这些问题的任何想法?

2 个答案:

答案 0 :(得分:5)

请转到:protected / runtime文件夹并删除所有文件。然后再试一次。

答案 1 :(得分:3)

1 - 您可以将数据直接插入到这些列的数据库中吗? 2 - 您可以在管理视图或任何其他视图上查看这些列吗? 3 - 您可以使用getColumn方法检索这些值吗?

如果没有,试试这个:

确保您在模型和视图中指定了新列

Model_Name.php

public function attributeLabels()
{
    return array(
        'id' => 'ID', // example
        'new_column' => 'New Column',
        ...
    );
}

您还应该从顶部到底部进行检查,作为一种好的做法,您还应该在模型顶部输入

 * @property integer $id //example
 * @property data_type $new_column
...

然后,要查看新列,您需要将它们添加到必要的视图中。

例如

VIEW.PHP

$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
         'id',
         'new_column',
          ...

如果你的模型包含所有这些定义,你应该能够从数据库中检索这些值,重新检查你可能拥有的任何自定义函数。