php - 无法从同一类的相同方法调用相同的静态方法

标签 php codeigniter error-handling controller

我的 Codeigniter 2.1.0 应用程序中有这个错误 Controller :

<?php

class Error extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        set_status_header(404);
        $data->menuItems = Main::_menu();
        $data->title = "404 error !";
        $data->pageview = 'templates/404';
        $this->load->view('templates/main', $data);
    }

    public function facebook()
    {

        set_status_header(404);            
        $data->menuItems = Main::_menu();
        $data->title = "Facebook error !";
        $data->pageview = "templates/facebook_error";
        $this->load->view('templates/main', $data);
    }
}
?>

主 Controller _菜单:

<?php
class Main extends CI_Controller
{
    // ...  a lot of methods here ...
    public static function _menu()
    {
            static $menuItems = array( //just a simple array
                                     );
    }
}
?>

facebook() 方法与 index() 完全相同,但索引工作正常,facebook() 抛出此消息:

Fatal error: Class 'Main' not found in /var/www/MYApplicationName/application/controllers/error.php on line 22

地球怎么可能?如何从 facebook() 方法到达 Main::_menu()

最佳答案

从另一个 Controller 调用函数会破坏 MVC,并将您置于 HMVC 领域。

请看this thread ,还有 CodeIgniter 的 Modular Extensions (HMVC) Plugin如果您真的需要这样做。

关于php - 无法从同一类的相同方法调用相同的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967450/

相关文章:

javascript - 不允许使用 Codeigniter/PHP(405 错误)在 jQuery Blueimp FileUpload 上删除方法?

javascript - 每秒刷新一次php代码

php - 在 PHP 中通过引用返回

php - Codeigniter 路由不正确

linux - 什么是好的 Linux 退出错误代码策略?

sql - 错误消息4145,级别15,状态1,非 boolean 类型的表达式

android - 错误在启动AVD时意味着什么

php - 将正则表达式存储在 MySQL 数据库表中并对其进行处理

php - 文件未使用 html 输入类型文件上传

php - Codeigniter 在数据库结果中生成数组