0

我可以很容易地使用 Gii 从 MySQL/MariaDB 视图生成模型,但是当我尝试生成 CRUD 时,我收到以下错误消息:

与 frontend\models\MyModel 关联的表必须具有主键。

另见Yii 框架论坛中的讨论

4

2 回答 2

6

解决方案是:

  1. 在视图中添加一个 ID,例如使用CONCAT 函数

  2. 覆盖生成模型中的方法primaryKey。

这是代码:

public static function primaryKey()
{
    return array('view_id');
}

它不是标准溶液,应谨慎使用。Yii 官方不支持在视图中使用活动记录,因为不同的 DBMS 有不同的视图规范,它们通常不支持 DB 写入 ( 2 )

于 2016-05-19T06:40:31.543 回答
1

在 yii2 上工作,主键
存在问题,所以我搜索以在VIEW TABLE中添加主键,但我不能,因为 -使用主键创建视图?将主键添加到 SQL 视图

然后开始在VIEW Table上创建CRUD。我查看了很多文章,例如-


        public static function primaryKey()
        {
            return array('my_view_id');
        }

为我工作。

于 2017-08-30T11:03:23.330 回答