Php Yii框架中使用MySQL视图的类表继承

Php Yii框架中使用MySQL视图的类表继承,php,mysql,yii,class-table-inheritance,Php,Mysql,Yii,Class Table Inheritance,我想在Yii中实现类(多)表继承,但我发现它非常困难,所以我计划使用MySQL视图的方法 以下是我的表和类的示例: CmsAd是一个表,它继承了CmsContent表中包含的所有字段: CREATE TABLE `CmsAd` ( `Id_CmsAd` varchar(32) NOT NULL, `Image` varchar(300) DEFAULT NULL, `Id_PrdClass` varchar(32) DEFAULT NULL, `Id_PrdCatalog` va

我想在Yii中实现类(多)表继承,但我发现它非常困难,所以我计划使用MySQL视图的方法

以下是我的表和类的示例:

CmsAd是一个表,它继承了CmsContent表中包含的所有字段:

CREATE TABLE `CmsAd` (
  `Id_CmsAd` varchar(32) NOT NULL,
  `Image` varchar(300) DEFAULT NULL,
  `Id_PrdClass` varchar(32) DEFAULT NULL,
  `Id_PrdCatalog` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`Id_CmsAd`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `CmsContent` (
  `Id_CmsContent` varchar(32) NOT NULL,
  `ModifiedBy` varchar(32) DEFAULT NULL,
  `ModifiedOn` datetime DEFAULT NULL,
  `CreatedBy` varchar(32) DEFAULT NULL,
  `CreatedOn` datetime DEFAULT NULL,
  `Status` varchar(99) DEFAULT NULL,
  `Subject` varchar(350) DEFAULT NULL,
  `Text` longtext,
  `KeyWord` varchar(300) DEFAULT NULL,
  `Code` varchar(340) DEFAULT NULL,
  PRIMARY KEY (`Id_CmsContent`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CmsAd_视图是一个MySQL视图,包含这两个表的连接:

CREATE VIEW `CmsAd_View` AS SELECT `CmsAd`.*, `CmsContent`.* FROM `CmsAd` LEFT JOIN `CmsContent` ON `CmsContent`.`Id_CmsContent` = `CmsAd`.`Id_CmsAd`;
以下是这些表格的模型:

class CmsAd extends CActiveRecord {

    public function tableName() {
        return 'CmsAd_View';
    }
}


class CmsContent extends CActiveRecord {

    public function tableName() {
        return 'CmsContent';
    }
}
请注意,CmsAd的表名是视图CmsAd\u视图

现在,我想在CmsAd中实现CRUD。使用find()方法可以,因为它从视图CmsAd\u视图中检索

我的问题是insert()update()方法,我们必须插入和更新两个表CmsAdCmsContent


有没有人试图在Yii中实现表继承的视图方法?

Yii只是生成insert/update sql。是一对一的关系吗?你试过了吗?是的,一对一。我试图直接在视图中插入,但它显示了以下错误:#1471-插入的目标表CmsAd_视图无法插入。