我使用gii的mariadb视图生成了一个模型.
然后尝试使用gii CRUD生成器为模型,我得到错误
The table associated with app\models\Future must have primary key(s).
这是完全可以理解的,因为视图没有PK.我找到了一些建议,说要在模型中添加一个primaryKey函数,所以我试过了
public function primaryKey()
{
return 'id';
}
id是列名,它实际上是底层表中的PK,它是视图的一部分.但这失败了,但有例外
Cannot make static method yii\db\ActiveRecord::primaryKey() non static in class app\models\Future
所以我尝试使方法静态,但然后抛出新的异常
Undefined index: i
1. in /home/adrian/projects/mtview/mtview/vendor/yiisoft/yii2-gii/generators/crud/Generator.php at line 509
有没有办法解决这个问题,或者现在不可能使用gii为数据库视图生成代码?
解决方法:
简单地添加到您的Model类
public static function primaryKey()
{
return ['id'];
}