将多个数组传递给多个视图

时间:2016-12-10 21:24:58

标签: php codeigniter view

我正在尝试加载一个控制器,它加载两个不同的视图,并将不同的数组传递给每个视图。

public function index(){
        $this->load->view('Head');

        $data=$this->DAOPromotor->recuperarPromotor();
        $eventos=$this->DAOEvento->recuperarPromotorEventos();
        $this->load->view('MostrarPromotor', $data);
        $this->load->view('MostrarPromotorEventos', $eventos);
        $this->load->view('Footer');
}

这是我的控制器。现在,第一个视图(“MostrarPromotor”)加载得很好,但第二个视图继续抛出一个Undefined Variable警告。我在不同的控制器上使用了recuperarPromotorEventos()方法,它工作正常。我对数组的处理方式相同在两个脚本上的方式,但它只适用于一个。

我想知道是否可能有两个视图同时恢复数据。

1 个答案:

答案 0 :(得分:1)

在查看了更多内容后找到了解决方案:当您将数组传递给视图时,它会使用数组的索引名称作为引用来分解其不同组件上的所述数组。所以,如果我有这个数组:

$eventos = array(
   'data1' => 'someData',
   'data2' => 'someMoreData'
);

当我将该数组传递给视图时,视图可以访问变量$ data1和$ data2,但不能访问$ eventos数据。由于我的原始数组没有任何名为eventos的索引,因此没有任何变量称为。

至于我的特殊问题,我唯一需要做的就是修改代码:

public function index(){
    $this->load->view('Head');

    $data=$this->DAOPromotor->recuperarPromotor();
    $eventos["eventos"]=$this->DAOEvento->recuperarPromotorEventos();
    $this->load->view('MostrarPromotor', $data);
    $this->load->view('MostrarPromotorEventos', $eventos);
    $this->load->view('Footer');
}