Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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

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,我想自己扩展基本控制器。这是我放入应用程序/库中的文件MY_Secure.php的代码 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); Class MY_Secure extends CI_Controller { public function __construct() { parent::__construct(); if(!$this->session-

我想自己扩展基本控制器。这是我放入
应用程序/库中的文件
MY_Secure.php
的代码

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

Class MY_Secure extends CI_Controller {
  public function __construct() {
    parent::__construct();
    if(!$this->session->userdata('status') == 'admin') {
        $data['message'] = '<p class="error">You shold login in admin area</p>';
        $this->load->view('admin/login', $data);
    }
  }
}
?>
但是我有一个错误
致命错误:在第3行的Z:\home\ci.local\www\application\controllers\admin\category.php中找不到类“MY_Secure”
如何避免此错误?我做错了什么?


…因此,将MY_Secure.php MY_Controller.php放入application/core

中,您不能将扩展控制器命名为“
MY_Secure
”,必须将其命名为“
MY_Controller
”。然后扩展它

class Category extends MY_Controller

我认为问题在于MY_Secure.php的位置。如果您没有在配置中更改MY_uu前缀,则该前缀可以工作


MY_Secure类必须保存在Applications Core文件夹中,才能在CodeIgniter 2.O而不是Libraries文件夹中工作。

Phil Sturgeon在这方面发表了一篇非常好的博文:
没有必要的条件将其保存或命名为
MY_Controller
。如果您愿意,可以将其命名为:
Mysite\u Controller

请将您的类放入
应用程序/core
文件夹,然后从控制器类扩展此类

但为了使其正常工作,您需要更改配置文件值:

$config['subclass_prefix'] = 'Mysite_'; // default  it is 'MY_'

这就是meen,我只能有一个控制器,它可以扩展基本控制器?在这个阶段,我对一个控制器感到满意,谢谢。但当我需要另一个控制器时,我该怎么办?不,你可以有你想要的控制器。但扩展核心控制器与制造新控制器并不相同。我像这样extnad contrler我用基本的URL结构extand codeingniter的URL:westley先生:extnad还不是一个有效的Codnight变量。直到下一个版本。
$config['subclass_prefix'] = 'Mysite_'; // default  it is 'MY_'