2013-10-15 11:29:46 4232次浏览 2条回答 0 悬赏 40 金钱

数据库是 mysql myisam 

现有已表 train 培训表

train_people 参加培训的人员表

一个train对应多个 train_people 通过 train的主键 train_id关联的 train_people 里面也有个train_id

在Train model里面

public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'people'=>array(self::HAS_MANY, 'TrainPeople', 'train_id'),
);
}

这样写的

查询语句


$model = new Train();
        $model_user = new User();
        $criteria = new CDbCriteria;
        //$criteria->condition = "";
        $criteria->order = 'add_time DESC';
        $criteria->select = '*';
        $count = $model->count($criteria);
        $pager = new CPagination($count);
        $pager->pageSize = 10;
        $pager->applyLimit($criteria);
        $lists = $model->with('people')->findAll($criteria);
        var_dump($lists->people);
结果为 空 数据库里我添加数据了 请问这是什么情况

  • 回答于 2013-10-15 16:58 举报

    你肯定不是一个合格的开发者。

    findAll返回的是array类型,你用->去访问肯定会报错,除非你报错没全开

    1 条回复
    回复于 2013-10-16 08:38 回复

    问题解决了,您说的一半一半吧,确实我吧不是合格的开发者,这点也很纠结,做程序也快两年了,一直是学了忘,总是感觉很难再上升, findAll是返回的对象不是array 现在已经可以了,谢谢你

  • 回答于 2013-10-15 17:10 举报

    LZ的用法很奇怪啊。你把$model改成Train::model()试试。就是Train::model()->with('people')->findAll($criteria);

    LS的回答有道理,但是应该不是问题的所在。按道理说是不会报错的。

    1 条回复
    回复于 2013-10-16 08:39 回复

    感谢 呵呵 现在好了

您需要登录后才可以回答。登录 | 立即注册
510168343
试用期

510168343

注册时间:2013-09-23
最后登录:2013-11-06
在线时长:2小时30分
  • 粉丝1
  • 金钱0
  • 威望0
  • 积分20

热门问题