2014-03-31 45 views
0

我正面臨一個奇怪的問題。我在Windows上創建了一個應用程序,並且正在嘗試將其部署到Linux。我知道案件問題,並在可能的地方糾正,但這次我不知道該怎麼做。Yii關係在Linux上返回null

我有以下型號:

public function relations() 
{ 
    $tmp=parent::relations(); 
    $tmp['applied_teams']=array(self::MANY_MANY, 'Group',  'qualification(group_id,competition_id)'); 
    $tmp['rounds'] = array(self::MANY_MANY,  'Competition','competitions_competitions(competition_parent,competition_child)'); 
    return $tmp; 
} 

其中applied_teams返回NULL,但回合,沒有。記錄在數據庫中正確。你知道這兩種操作系統之間會有什麼不同嗎?

UPDATE

我寫了一個解決辦法,但都沒有找到問題的原因。在Linux上getter方法沒有問題:

public function getAppliedTeams() { 
     $qs = Qualification::model()->findAll('competition_id=:c', array(':c' => $this->competition_id)); 
     if ($qs == null) { 
      return null; 
     } 
     $results = array(); 
     foreach ($qs as $q) { 
      $results[] = $q->group; 
     } 
     return $results; 
    } 

回答

0

問題是MySQL引擎。服務器的默認是MyISAM,而不是InnoDB,但外鍵創建沒有引發異常。