如何在yii2中添加MODEL中的列

时间:2016-05-24 12:59:00

标签: php yii yii2 yii2-advanced-app yii2-model

我使用 Gii

创建了名为 ExpertQuestion 模型

之后我在表中添加了列,我从中生成了表。

所以,我的问题是如何在我的ExpertQuestion模型中添加列来访问它。

错误:

  

未知属性 - yii \ base \ UnknownPropertyException

     

设置未知属性:app \ models \ ExpertQuestion :: is_deleted

5 个答案:

答案 0 :(得分:1)

为该表重新运行Gii,并将缺少的信息复制并粘贴到模型中。

或者,如果模型中没有其他代码,则只覆盖整个模型

或者您可以使用类似Giiant的内容,其中包含您的实际模型继承的基本模型,这意味着您只需在数据库发生更改时重新运行基本模型,并且不会覆盖任何基础模型实际模型中实现此基本模型的代码。

答案 1 :(得分:1)

让我们在您的模型中将新列名称视为newCol

更新规则功能

public function rules()
{   
   return [.....

      [['newCol'], 'string', 'max' => 30],

      ];   
}

然后添加标签

public function attributeLabels()
{
        return [...

         'newCol' => Yii::t('app', 'L Name'),

       ];    
}

现在打开搜索模型并更新

public function search($params)
{
    ....

    $query->andFilterWhere(['like', 'newCol ', $this->newCol ])

    ....

    return $dataProvider;    
}

答案 2 :(得分:0)

编辑模型文件并在规则中编写新的字段名称。

例: 新字段为 is_deleted(字符串),然后为此字段编写新规则。

[['is_deleted'], 'string'],

答案 3 :(得分:0)

Аgain在Gii中生成模型,单击diff按钮,然后复制并粘贴到与您的新字段相关的模型。

screen diff button

答案 4 :(得分:0)

这与yii1缓存模型

的方式有关

如果您不需要为新一代型号运行Gii ..

您可以简单地删除应用的运行时目录

   yourApp/runtime