php – 使用Yii2中的Gii从数据库视图创建CRUD

我使用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'];
}
上一篇:php – Yii2 – 以一种形式保存多个相关的ActiveRecord模型


下一篇:Java 清除指定目录文件夹下文件