2

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

$model->getAttributes()

两个新列没有出现在的数组输出中$model->getAttributes() method call

我的配置中没有设置模式缓存,知道如何解决这个问题吗?如果我在炫耀这两个新列时遇到问题,我将如何从前端获取新添加列的输入表单的值添加列?

例如

新专栏 INHOUSE OUTHOUSE

//看法

 <?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();

也不

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

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

4

2 回答 2

5

请转到:受保护/运行时文件夹并删除所有文件。然后再试一次。

于 2012-10-24T15:52:57.463 回答
3

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

如果没有,试试这个:

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

型号名称.php

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

您还应该从上到下检查,作为一种好的做法,您还应该在模型的顶部键入它

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

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

例子

视图.PHP

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

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

于 2012-10-24T14:30:15.193 回答