我使用 Gii
创建了名为 ExpertQuestion 的模型之后我在表中添加了列,我从中生成了表。
所以,我的问题是如何在我的ExpertQuestion模型中添加列来访问它。
错误:
未知属性 - yii \ base \ UnknownPropertyException
设置未知属性:app \ models \ ExpertQuestion :: is_deleted
答案 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按钮,然后复制并粘贴到与您的新字段相关的模型。
答案 4 :(得分:0)
这与yii1缓存模型
的方式有关如果您不需要为新一代型号运行Gii ..
您可以简单地删除应用的运行时目录
yourApp/runtime