我正在尝试加载一个控制器,该控制器加载两个不同的视图,并将不同的数组传递给每个视图。
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()方法,它工作得很好。我对数组的处理方式相同在两种脚本上都可以使用这种方式,但它只适用于一种。
我想知道是否不可能让两个视图同时接收数据。
在查看更多内容后找到了一个解决方案:当您将数组传递给视图时,它会使用数组的索引名称作为引用来分解该数组的不同组件。所以,如果我有这个数组:
$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');
}