我在我的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;
如何解决所有这些问题的任何想法?
答案 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',
...
如果你的模型包含所有这些定义,你应该能够从数据库中检索这些值,重新检查你可能拥有的任何自定义函数。