Yii2:如何使用Gii自动从MySQL / MariaDB视图生成CRUD

时间:2016-05-19 06:40:32

标签: yii2 yii2-model

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

  

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

另请参阅discussion in Yii Framework Forum

2 个答案:

答案 0 :(得分:4)

解决方案是:

  1. 在视图中添加ID,例如使用CONCAT function

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

  3. 以下是代码:

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

    这不是标准解决方案,应谨慎使用。 Yii没有正式支持将活动记录与视图一起使用,因为不同的DBMS具有不同的视图规范,并且它们通常不支持DB write(2

答案 1 :(得分:0)

在yii2上工作,
主键存在问题,因此我搜索在 VIEW TABLE 中添加主键但我不能因为 -
Create view with primary key?
Adding in a primary key to an SQL view

然后移动到 VIEW Table 上创建 CRUD 。我查看很多文章,如 -

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

为我工作。