2015-07-01 16:01:21 5853次浏览 1条回答 0 悬赏 0 金钱

新手求赐教!
我在Userfans模型里

public function relations(){
    return array(
        'fans'=>array(self::HAS_ONE, 'Userrelation', 'fan_id','condition'=>"t.status=1"),
    );
}

在控制器里

$userfansmodel=Userfans::model();
$result=$userfansmodel->with("fans")->findAll();

我打印$result结果却是

Error 500
Invalid argument supplied for foreach()

Application Log 里

Querying SQL: SELECT `t`.`id` AS `t0_c0`, `t`.`username` AS `t0_c1`,
`t`.`password` AS `t0_c2`, `t`.`status` AS `t0_c3`, `fans`.`user_id` AS
`t1_c0`, `fans`.`fan_id` AS `t1_c1` FROM `hd_userfans` `t`  LEFT OUTER JOIN
`hd_userrelation` `fans` ON (`fans`.`fan_id`=`t`.`id`) WHERE (t.status=1)

请问大神们 ,哪里用的不对啊,

  • 回答于 2015-07-01 17:02 举报

    你试着用CDbCriteria 类去传入条件

    3 条回复
    回复于 2015-07-06 14:52 回复

    谢谢回答,问题不是要用CDbCriteria 类去传入条件,我在Userrelation这张关系表增加了自增主键ID,就可以了,为什么会这样不清楚,原以为这只是一个关系表并不需要自增主键,关联一个外键fan_id不就行了吗?这是为什么呢

    回复于 2015-07-06 16:09 回复

    第三个参数就是主键来的,如果不想用主键关联可以用数组。

    回复于 2015-07-07 11:30 回复

    第三个参数是外键(‘Userrelation’中的关联字段),与Userfans的主键相关联,觉得与Userrelation中有没有主键木有关系啊?

您需要登录后才可以回答。登录 | 立即注册
carrie_w
实习生

carrie_w

注册时间:2015-07-01
最后登录:2015-09-15
在线时长:0小时56分
  • 粉丝0
  • 金钱10
  • 威望0
  • 积分10

热门问题