BoyLee 2011-04-12 14:05:30 5123次浏览 2条回复 1 0 0

有2张表:Map , Version 简单的说 地图有版本,每次添加版本的时候 都会把这个版本的id做为last_version_id填充到Map表里,然后Yii自动给做了一个has_one relation,以前是加外键的,后来外键给我删了。。。 大概的语句如下:

[Model :: Map]
'lastVersion'=>array(self::HAS_ONE, 'Version', 'id'),

[Model :: Version]
'amap'=>array(self::HAS_ONE, 'Map', 'last_version_id'),

现在的问题是我 实例化一个Version,然后$model->amap-> 可以访问map表的东西 但是如果我实例化一个$Map->lastVersion->就访问不了 version表的字段。。。。。 问题解决了。。。。。 真是欠抽。。。。这个貌似是Gii自动扫描出来的。。。应该改成

'lastVersion'=>array(self::BELONGS_TO, 'Version', 'last_version_id'),

是这样发现的,上图 [attach]71[/attach]

这里显示绑定的值居然是Map表的主键。。。。。也就是拿Map表的id而不是last_version_id做条件去查询了。

也可能不是gii做的,是我自己改错了,呵呵。

  • 回复于 2011-04-12 14:26 举报

    还有更神奇的呢....你看下面的with多神气呀~
    [attach]72[/attach]
    with.....with.....with....

  • 回复于 2011-04-15 13:41 举报

    ‘'relationType'’ :BELONGS_TO ,以当前model_table的外键(foreign_key) 对应 关联表中的主键 。
    HAS_ONE,以当前model_table的主键(primary key) 对应 关联表中的外键。

您需要登录后才可以回复。登录 | 立即注册