在控制器中使用视图变量


Use view variable in controller?

在我的控制器中,我从运动员表中获取所有条目,姓名,姓氏等…将它们保存在数组中并传递给我的视图。然后,在我的视图文件中,我使用foreach列出了所有条目。所有运动员的名单都列得很好……

但是我想检查每个运动员,看看他们是否存在于表My Team!在视图的foreach循环中我使用了这个函数

$this->my_team_model->exist($this->session->userdata("id"), $athletes[$i][6]) === TRUE

exist()函数的第一个参数是我从会话中获得的用户id,第二个参数是运动员表($athletes[$i][6])中运动员的id。

所以你看,我真的需要第二个运动员id参数!但我只能得到它,当运动员在我看来逐一列出。但我知道我不应该在视图文件中使用函数和逻辑。我如何在控制器中做到这一点?

你应该在你的控制器中使用相同的foreach循环并获得所需的数据,将数据附加到你传递给视图的数组:

$array = $this->some_model->all_the_data_of_atheletes();
foreach( $array as $key => $eachAthelete ){
    $exists = $this->model->call_to_function( $this->session->userdata("id"), $eachAthelete['id'] );
    $array[$key]['exists']  = $exists;
}
$this->load->view('some_view', $array);

现在,在您的视图中,您将为每个迭代获得一个exists元素。