codeigniter:执行第一个控制器后加载第二个控制器

时间:2013-07-23 13:48:48

标签: codeigniter

我们有两个控制器,一个是members.php,正在为用户注册另一个reserv.php,用于保留公交车票。

我想在第一个控制器类完成后加载第二个控制器。

members.php

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Members1 extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('member_model1');
    }

    public function index() {
        $table = $this->member_model1->insert_members();
        $data['members'] = $table;
        //$this->load->view('header1', $data);
        $this->load->view('reservation_view',$data);
        //$this->load->view('members');
        //$this->load->view('footer');
    }
}

reserv.php

<?php 

class reserve extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('member_model1');
    }

    function index() {
        $table = $this->member_model1->get_members();
        $data['members'] = $table;
        //$this->load->view('header1', $data);
        $this->load->view('reservation_view',$data);
        //$this->load->view('reservation_view');    
        // $this->load->helper(array('form'));
        //$this->load->view('reservation_view');
    } 
}
?>

1 个答案:

答案 0 :(得分:0)

要从另一个控制器调用控制器,您可以使用函数redirect()

// In Members1 controller
redirect('/reserve/index');

请注意,您将无法与重定向一起发送数据,例如加载视图时。要发送数据,您必须使用$this->session->set_flashdata();,因为重定向似乎使用header()(我建议您在this post处获得战利品。)

// In Members1 controller
$this->session->set_flashdata('key', 'value');
redirect('/reserve/index');

顺便说一下,当我查看你的两个课程时,我想知道你为什么不简单地用TicketregisterUser()这两个方法创建一个独特的bookTicket()课程(这些名字)是纯粹的幻想,可以自由使用你的。)