2014-09-29 79 views
0

我已更新所有內容,因爲它已將其更新至最新版本。 但是在我view文件我收到了一些錯誤,我不明白爲什麼:例如,這在下面:從Codeigniter 1.7.3升級到2.2.0 - 問題

<a href="#" class="teams_button_2">'.($relations[$team->teams_id]?$relation_names[$relations[$team->teams_id]]:'Neutral').'</a> 

我得到這個錯誤:

A PHP Error was encountered 

Severity: Notice 

Message: Undefined variable: relations 

Filename: pages/teams.php 

Line Number: 48 

它完美地工作過,但現在不是了。我還有其他一些類似的東西。什麼可能導致它?

UPDATE:控制器爲:

function view() 
    { 


$data['player'] = $this->user->info($this->user->id()); 
$data['motors_count'] = $this->user->count_motors($this->user->id()); 

$data['menu_active']['teams'] = ' active'; 

$data['teams'] = $this->db->order_by('team_points', 'desc')->get('teams')->result(); 

if ($this->user->team_id()) 
{ 
    $relations = $this->db->where('teams_relations_teams_id', $this->user->team_id())->get('teams_relations')->result(); 
} 

$requests = $this->db->where('teams_join_requests_user_id', $this->user->id())->get('teams_join_requests')->result(); 
$data['requests'] = array(); 


if ($relations) 
    foreach ($relations as $relation) 
     $data['relations'][$relation->teams_relations_second_teams_id] = $relation->teams_relations_type; 

if ($requests) 
    foreach ($requests as $request) 
     $data['requests'][] = $request->teams_join_requests_teams_id; 

$this->load->view('logged/includes/header.php', $data); 
$this->load->view('logged/pages/teams.php'); 
$this->load->view('logged/includes/footer.php'); 

} 
+0

嘗試'var_dump($ data ['relations'])'檢查它是否設置。反正你沒有把'$ data'傳遞給'teams.php view'。 – 2014-09-29 05:10:43

回答

0
在控制器$關係

是可選的 - 你擁有了它包裹在一個IF - 但是在你瀏覽它不是可有可無的。

要麼檢查您的控制器中的$關係 - 如果沒有$關係 - 則調用一個不使用它的視圖。或者檢查您的視圖文件中的$關係。

因此,這裏是一個問題 -

$relations = $this->db->where('teams_relations_teams_id', $this->user->team_id())->get('teams_relations')->result(); 

,但如果你沒有得到任何結果回來會發生什麼?檢查你可以在該方法中編寫更多的IF/ELSE代碼,但它會開始轉向Pasta Indented。因此,在您要重構的地方,將該數據庫交互放入模型中,然後讓控制器只檢查是否有數據從數據庫中返回。

我也不知道,所以我只是測試它 - 但如果你只傳遞數據到第一個加載視圖文件(就像你在做什麼),$ data會自動傳遞到其他加載視圖文件。