【问题标题】:how to show new added columns in database in yii framework?如何在 yii 框架中显示数据库中新增的列?
【发布时间】:2013-02-13 19:36:38
【问题描述】:

我在我的 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();

正常

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

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

【问题讨论】:

  • 我们来看看实际的型号代码(包括规则)。
  • 列处于我的规则的安全模式
  • 可以直接在db中输入值吗?我认为这是一个数据库错误,所以请确认。另外,您不需要为此在安全规则中包含这些列,getAttributes 始终使用元数据,因此没有关于安全或不安全的问题。事实上,对于 getAttributes 调用,您不需要更改模型中的任何内容来反映新添加的列。
  • oracle 出了点问题,这就是为什么我从一个简单的复选框中保存数据时遇到问题....自我注意:当使用 yii 框架和 oracle 数据库时,以及将来的新列添加后,yii 不会像 mysql 那样在现场显示它们.. 需要为新模式执行一个脚本,以便 yii 框架可以通过 $model->getAttributes() 显示新表列并将数据保存在桌子

标签: php yii


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    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',
              ...
    

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

    【讨论】:

    • 这不是我的问题的答案......无论如何,解决方案是,每当有新添加的表或列或数据库表中的一些更改时,我们都会运行一个 sql 脚本。 ..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多