【发布时间】:2012-01-12 02:39:29
【问题描述】:
如何制作模型,连接数据库中的三个表?我的数据库结构是:
- 用户
- 身份证
- 其他字段
- users_info
- 身份证
- users_id - 'users' 表的外键
- 其他字段
- users_credentials
- 身份证
- users_id - 'users' 表的外键
- 其他字段
以前,我想在一个模型中绑定 2 个表,所以我使用了 addRelatedEntity 方法。这是我的代码:
class Model_UserInfo extends Model_Table{
public $entity_code = 'user_info';
function init(){
parent::init();
$this->addField('phone')->caption('Nr tel');
$this->addField('users_id');
}
function addRelation(){
$this->addRelatedEntity('i','users','users_id','left outer');
}
}
然后我在其他文件中扩展它-
class Model_User extends Model_UserInfo{
function init(){
parent::init();
parent::addRelation();
$this->newField('name')->caption('Imie')->mandatory(true)->relEntity('i','name');
}
}
而且效果很好。但是,如果我想将 3 个表绑定到一个模型中怎么办?我不能扩展 2 个类。有没有办法在 Model_User 中使用 addRelatedEntity,并引用 Model_UserInfo 和 Model_Credentials?
【问题讨论】:
-
调用父级::addRelation();就面向对象编程而言,这不是一个好方法。 $this->addRelation();更好的是,如果函数没有在当前类中定义,它是从父类继承的,所以它的工作方式完全相同。只是想指出这一点。
标签: atk4