【问题标题】:Codeigniter custom controller not loading anythingCodeigniter 自定义控制器未加载任何内容
【发布时间】:2016-08-08 03:24:41
【问题描述】:

我有一个MY_Controller,它扩展了CI_ControllerMY_Controller 将包含应用程序的所有常用功能。扩展MY_ControllerFrontend_Controller,此控制器将保存所有与公共相关的内容。 Admin_Controller 将包含所有管理内容,此控制器还扩展了 MY_Controller,以及一些扩展 Frontend_ControllerAdmin_Controller 的特定控制器。

我正在使用挂钩来自动加载控制器,这是我的文件:

application/core/MY_Controller.php

class MY_Controller extends CI_Controller
{
    protected $data = array(); 

    function __construct()
    {
        parent::__construct();
        $this->data['errors'] = array();
        $this->data['site_name'] = $this->config->item('site_name');
    }
}

application/core/Frontend_Controller.php

class Frontend_Controller extends MY_Controller
{

    function __construct()
    {
        parent::__construct();
        var_dump ('Hello');
    }
}

application/controllers/Welcome.php

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

class Welcome extends Frontend_Controller {

    function __construct()
    {
        parent::__construct();  
    }

    public function index()
    {
        var_dump($this->data);
        $this->load->view('welcome_message');

    }
}

我的钩子配置

application/hooks/App_controllers.php

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

<?php
function load_app_controllers()
{
  spl_autoload_register('my_own_controllers');
}

function my_own_controllers($class)
{
  if (strpos($class, 'CI_') !== 0)
  {
    if (is_readable(APPPATH . 'core/' . $class . '.php'))
    {
      require_once(APPPATH . 'core/' . $class . '.php');
    }
  }
}

application/config/hooks.php

/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files.  Please see the user guide for info:
|
|   https://codeigniter.com/user_guide/general/hooks.html
|
*/

$hook['pre_system'][] = array(
  'class' => '',
  'function' => 'load_app_controllers',
  'filename' => 'App_controllers.php',
  'filepath' => 'hooks'
);

config.php 中启用了钩子$config['enable_hooks'] = TRUE;

我的问题是 Welcome 控制器正在加载一个空白页面,当我创建 MY_Controller 并对其进行测试时,工作正常,但是当我创建 Frontend_Controller 并尝试只加载一个空白页面。

【问题讨论】:

  • 你检查过error_logs吗?

标签: php codeigniter controller codeigniter-3


【解决方案1】:

错误出现在App_controller.php 文件中,它有两个&lt;?php 标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    相关资源
    最近更新 更多