技术:ORM、Doctrine 1.1.6、KohanaPHP
使用教义 1.1.6。如何将模型分布在不同的表上?
详细情况:
我有一个实体类,它包含一个 ID、登录名和密码,并且有一个电子邮件地址、许多地址和一些其他关系。我还有另外两个类,Company 和 Person,它们扩展了 Entity。我想使用Column 聚合来扩展它们,以便所有登录名和密码信息都保存在一个地方。现在我想将特定列添加到我的 Person 类(名字、姓氏等),但我找不到如何做到这一点。文档给出的唯一示例是没有额外列的示例。
当前课程
实体类:
类实体扩展了 Doctrine_Record { 公共函数 setTableDefinition() { $this->setTableName('entity'); $this->hasColumn('id', 'integer', 4, array( '类型' => '整数', '长度' => 4, '无符号' => 0, '主要' => 真, '自动增量' => 真, )); $this->hasColumn('login', 'string', 64, array( '类型' => '字符串', '长度' => 64, '固定' => 假, '主要' => 假, 'notnull' => 真, '自动增量' => 假, )); $this->hasColumn('密码', '字符串', 64, 数组( '类型' => '字符串', '长度' => 64, '固定' => 假, '主要' => 假, 'notnull' => 真, '自动增量' => 假, )); $this->hasColumn('created', 'date', null, array( '类型' => '日期', '主要' => 假, 'notnull' => 假, '自动增量' => 假, )); $this->hasColumn('modified', 'date', null, array( '类型' => '日期', '主要' => 假, 'notnull' => 假, '自动增量' => 假, )); $this->setSubclasses(数组( '人' => 数组(“类型” => 1) )); } }
人物类:
类人扩展实体 { 公共函数 setTableDefinition() { $this->setTableName('person'); $this->hasColumn('id', 'integer', 4, array( '类型' => '整数', '长度' => 4, '无符号' => 0, '主要' => 真, '自动增量' => 真, )); $this->hasColumn('firstname', 'string', 255, array( '类型' => '字符串', '长度' => 255, '固定' => 假, '主要' => 假, 'notnull' => 真, '自动增量' => 假, )); $this->hasColumn('insertion', 'string', 64, array( '类型' => '字符串', '长度' => 64, '固定' => 假, '主要' => 假, 'notnull' => 假, '自动增量' => 假, )); $this->hasColumn('lastname', 'string', 255, array( '类型' => '字符串', '长度' => 255, '固定' => 假, '主要' => 假, 'notnull' => 真, '自动增量' => 假, )); } }
生成的 SQL:
创建表`人`( `id` INT AUTO_INCREMENT, `firstname` VARCHAR(255) NOT NULL, `插入` VARCHAR(64), `lastname` VARCHAR(255) NOT NULL, 主键(`id`) ) 引擎 = INNODB 创建表`实体`(` id` INT AUTO_INCREMENT, `login` VARCHAR(64) NOT NULL, `password` VARCHAR(64) NOT NULL, `创建`日期, `修改`日期, 主键(`id`) ) 引擎 = INNODB
有人可以告诉我如何做到这一点吗?