Yii的连接查询结果为空


在使用GridView时报出的错误是:
Invalid argument supplied for foreach()
错误位置是:

     /**
      * Performs lazy find with the specified base record.
      * @param CActiveRecord $baseRecord the active record whose related object is to be fetched.
      */
     public function lazyFind($baseRecord)
     {
         if(is_string($this->_table->primaryKey))
             $this->records[$baseRecord->{$this->_table->primaryKey}]=$baseRecord;
         else
         {
             $pk=array();
             foreach($this->_table->primaryKey as $name)
                 $pk[$name]=$baseRecord->$name;
             $this->records[serialize($pk)]=$baseRecord;
         }
 
         foreach($this->stats as $stat)
             $stat->query();
 
         if(!$this->children)
             return;
         $child=end($this->children); // bridge(s) inside, we're taking only last necessary child
 
         $query=new CJoinQuery($child);

Yii的连接查询结果为空,查询几遍都不行。
这个问题困扰我很长时间,我检查自己写的连接规则的问题,我反复检查几遍都没有找到问题所在,有一句:foreach($this->_table->primaryKey as $name)。最后想起前两天刚遇见一个更新问题因为没有设置主键出错。果然我把主键设置好以后问题就解决了。

Archives