+ -
当前位置:首页 → 问答吧 → 关联模型的问题!

关联模型的问题!

时间:2011-04-08

来源:互联网



有这两种情况

1 是官方demo 中的例子,很明白,也很容易理解,是以用户ID映射其他表!

还有一种情况,我也想通过关联来实现,但是不成功

这样的,
有两张表

一张是 用户表,主键为ID,其他的列都是男女,生日之类的信息

一张表是好友表
是这么设计的

ID
UID
FID


现在有这么一个需求
得到当前用的所有好友
写SQL很简单,要么一个关联SQL,两张表一起查,显示出来是FID 对应的名字,要么2个SQL,第一个是FID,第二个是把fid翻译成名字

这个时候,我也想用关联模型实现,但是总是搞不定,

大概就是这样子,好友的模型是

class FriendModel extends RelationModel
{
   
    protected $_link = array(
        'Member'=>array(
            'mapping_type'=>HAS_ONE,
            'class_name'=>'Member',
            'foreign_key'=>'id'
        )
    );
}



使用是

$user = $friend->relation('Member')->select();

打出来的数据是
Array ( [0] => Array ( [id] => 1 [uid] => 38 [fid] => 39 [Member] => ) [1] => Array ( [id] => 2 [uid] => 38 [fid] => 40 [Member] => ) )

管理之后的SQL 却是  SELECT * FROM `stf_member` WHERE 1=1 AND id='2'

为什么用的是‘2’  2 是好友表的主键,正确的情况下应该是用 FID。  难道thinkphp 的关联模型中,只能使用当前模型的主键做为查询条件吗??这倒符合官方给出的例子!

请大家指教



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

得了,果然是   2  的来源就是好友表的主键,我把好友表的主键改成了FID 就对了,可是  这么做不合适啊!!!!  或者有别的设置,我没做!!!!!

继续请教!!

作者: syy870714   发布时间: 2011-04-08

我自己顶上去,这个挺有用的啊

作者: syy870714   发布时间: 2011-04-08