2014-09-29 106 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会自动传递到其他加载视图文件。