从Codeigniter 1.7.3升级到2.2.0 - 问题

时间:2014-09-29 02:09:10

标签: php codeigniter

我已根据要求将所有版本更新为最新版本。 但是在我的view文件中,我收到了一些错误,我不明白为什么:示例如下:

<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

之前完美无缺,但现在已经完成了。我得到了其他一些类似的东西。可能导致什么呢?

更新:控制器:

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' );

}

1 个答案:

答案 0 :(得分:0)

在你的Controller $中,

是可选的 - 你将它包装在IF中 - 但是在你的View中它不是可选的。

检查控制器中的$ relationship - 如果没有$ relationship - 则调用不使用它的视图。或者在视图文件中检查$ relationship。

所以这是一个问题 -

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

但如果你没有得到任何结果会怎样?检查你可以在该方法中编写更多的IF / ELSE代码,但随后它开始转向Pasta Indented。所以你要重构的地方,将数据库交互放入模型中,然后让控制器只检查数据库中是否有东西返回。

我也不知道所以我只测试了它 - 但如果你将$ data传递给第一个加载视图文件(就像你正在做的那样),$ data将自动传递给其他加载视图文件。

相关问题