DataMapper CodeIgniter关系一对一

时间:2012-03-28 15:08:17

标签: codeigniter codeigniter-datamapper

我正在尝试使用以下内容: (我需要拆分用户表)

===================

table users


id | pseudo | password
id PK

===================

table users_infos

user_id | stats | etc etc
user_id FK (>users>id) 

===================

model user

$has_one = array('users_info)

model users_info

$has_one = array('user)

//

我的问题来自表格users_infos。如果没有Id字段,则无法使用save方法进行更新。我尝试将列user_id重写为id,但后来我从DataMapper中删除了外键。解决这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以尝试将其设置为一对多关系,在用户表格中创建users_info_id字段并使其唯一。

还会将user_id上的users_info字段更改为id

模型应该是这样的:     模型用户     $ has_one = array('users_info')

model users_info
$has_one = array('user')

这样它应该有用。

答案 1 :(得分:0)

每个表都应该有一个'id'列,这是必需的。

理想情况下,它被定义为自动增量,并且它不应该总是有意义,'id'只是一种唯一标识正确表格行的方法。

您需要双向定义关系,因此之前的答案无效。