0

我使用Gii创建了名为ExpertQuestion的模型

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

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

错误:

未知属性 – yii\base\UnknownPropertyException

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

4

5 回答 5

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;    
}
于 2016-10-10T13:49:06.787 回答
1

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

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

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

于 2016-05-24T13:15:53.797 回答
0

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

屏幕差异按钮

于 2016-05-24T13:29:40.430 回答
0

这与 yii1 缓存模型的方式有关

如果你不需要你重新运行 Gii 的新一代模型..

你可以简单地..删除你的应用程序的运行时目录

   yourApp/runtime  
于 2016-05-24T16:04:45.887 回答
0

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

例如:新字段is_deleted(string)然后为该字段编写新规则。

[['is_deleted'], 'string'],
于 2016-05-24T13:25:40.983 回答