我正在尝试加载一个控制器,它加载两个不同的视图,并将不同的数组传递给每个视图。
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()方法,它工作正常。我对数组的处理方式相同在两个脚本上的方式,但它只适用于一个。
我想知道是否可能有两个视图同时恢复数据。
答案 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');
}