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

问题描述 投票:0回答:1

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

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”)加载得很好,但第二个视图不断抛出未定义变量警告。我在不同的控制器上使用了recuperarPromotorEventos()方法,它工作得很好。我对数组的处理方式相同在两种脚本上都可以使用这种方式,但它只适用于一种。

我想知道是否不可能让两个视图同时接收数据。

php codeigniter view
1个回答
1
投票

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

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

当我将该数组传递给视图时,该视图可以访问变量 $data1 和 $data2,但不能访问 $eventos 数据。由于我的原始数组没有任何名为 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');
}
© www.soinside.com 2019 - 2024. All rights reserved.