Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在codeigniter中添加另一个控制器_Php_Codeigniter - Fatal编程技术网

Php 在codeigniter中添加另一个控制器

Php 在codeigniter中添加另一个控制器,php,codeigniter,Php,Codeigniter,您好,我目前面临添加另一个控制器的问题,问题是 我有两个控制器 class 1st_Controller extends CI_Controller { } 及 我的两个模型工作得非常好,唯一的问题是我需要为每个控制器调用一个模型 比如说 第一个控制器用于第一个型号,第二个控制器用于第二个型号 到目前为止我试过的是 class 2nd_Controller extends 1st_Controller { public function __construct() {

您好,我目前面临添加另一个控制器的问题,问题是

我有两个控制器

class 1st_Controller extends CI_Controller {
}

我的两个模型工作得非常好,唯一的问题是我需要为每个控制器调用一个模型

比如说 第一个控制器用于第一个型号,第二个控制器用于第二个型号

到目前为止我试过的是

class 2nd_Controller extends 1st_Controller {

    public function __construct()
    {
        header("Access-Control-Allow-Origin: *");
        parent::__construct();
        $this->load->model('2nd_model','2ndmodel');
        $this->load->helper('url');
        $this->load->library("pagination");
        $this->load->library("session");
    }
    public function index()
    {
        $data['title'] = 'System Login';
        $get_all_inv = $this->2ndmodel->get_all();
        $data["tryvariable"] = $get_all_inv;
        $this->template->load('default_layout','contents','myview2nd', $data);
    }
}
我试着在我的视野中这样回音

<?php echo $tryvariable; ?>


但是没有运气,因为错误表明它是一个未定义的变量。

无法定义第二个控制器,因为它在codeigniter应用程序中未定义为
子类前缀

class 2nd_Controller extends 1st_Controller { //codeigniter don't recognize this.
}
解决问题最简单的方法是。。事实上,您可以在一个控制器中调用多个模型

因此,您可以:

class 1st_Controller extends CI_Controller {
 public function __construct()
 {
    parent::__construct();
    $this->load->model('1st_model','1stmodel');
    $this->load->model('2nd_model','2ndmodel');
 }
}
或者只打一次电话

class 2nd_Controller extends CI_Controller {
     public function __construct()
     {
        parent::__construct();
        $this->load->model('2nd_model','2ndmodel');
     }
 }

希望这能有所帮助。

所以我所做的就是这样写,让我的
2nd\u控制器工作

$route['default_controller'] = '1st_Controller';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['2nd_Controller'] = '2nd_Controller';


现在一切都很顺利。感谢所有帮助

您没有在
\uuu construct
中加载模板,如果您试图加载一些视图,那么这是错误的方法。每个控制器使用一个模型也应以另一种方式进行。你应该添加
\u构造你想要使用的模型。你是什么意思我没有加载temple$this->template->,程序不知道什么是
模板
我的库中有一个template.php,先生,它在第一个控制台上运行得很好。如果是这样,我认为问题出在隐藏的
模板
库中的
load
方法内部。在使用
print\r()
函数发送这些变量时,请检查它。至少检查一下他们是否会来
$route['default_controller'] = '1st_Controller';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['2nd_Controller'] = '2nd_Controller';