我使用Gii创建了名为ExpertQuestion的模型
之后,我在表中添加了列,从中生成了表。
所以,我的问题是如何在我的 ExpertQuestion 模型中添加列来访问它。
错误:
未知属性 – yii\base\UnknownPropertyException
设置未知属性:app\models\ExpertQuestion::is_deleted
我使用Gii创建了名为ExpertQuestion的模型
之后,我在表中添加了列,从中生成了表。
所以,我的问题是如何在我的 ExpertQuestion 模型中添加列来访问它。
错误:
未知属性 – yii\base\UnknownPropertyException
设置未知属性:app\models\ExpertQuestion::is_deleted
让我们将模型中的新列名称视为 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;
}
为该表重新运行 Gii,并将丢失的信息复制并粘贴到您的模型中。
或者,如果您在模型中没有其他代码,只需覆盖整个模型
或者您可以使用Giiant 之类的东西,其中您的实际模型继承自基础模型,这意味着您只需在数据库发生更改时重新运行基础模型,并且您不会覆盖实现此基础的实际模型中的任何代码模型。
Аgain 在 Gii 中生成模型,单击 diff 按钮,然后复制并粘贴到与您的新字段相关的模型。
这与 yii1 缓存模型的方式有关
如果你不需要你重新运行 Gii 的新一代模型..
你可以简单地..删除你的应用程序的运行时目录
yourApp/runtime
编辑模型文件并在规则中写入新的字段名称。
例如:新字段is_deleted(string)然后为该字段编写新规则。
[['is_deleted'], 'string'],