我可以使用Gii轻松地从MySQL / MariaDB视图生成模型,但是当我尝试生成CRUD时,我会收到以下错误消息:
与frontend \ models \ MyModel关联的表必须具有主键。
另请参见Yii Framework论坛中的讨论。
解决方案是:
在视图中添加一个ID,例如使用CONCAT函数,
在生成的模型中覆盖方法primaryKey。
这是代码:
public static function primaryKey()
{
return array('view_id');
}
Run Code Online (Sandbox Code Playgroud)
它不是标准解决方案,应谨慎使用。Yii并不正式支持将活动记录与视图一起使用,因为不同的DBMS具有不同的视图规范,并且它们通常不支持DB write(2)。