CodeIgniter:“无法重新声明类” - php

诚然,我的OOPHP有点不稳定,但是我看不出这是怎么回事。在我的一个控制器中,我包括一个utils工作表,该表与该控制器一样,扩展了基本的CI_Controller类。这将引发致命错误:

Fatal error: Cannot redeclare class Utils in {file path}\utils.php on line 88

控制器:

class Dashboard extends CI_Controller {

    public function __construct() {

        //call parent constructor
        parent::__construct();

        //load utils
        require 'application/helpers/utils.php'; //<-- utils loaded
        $this->utils = new Utils(); //<-- utils instantiated

        //load Dashboard model
        $this->utils->load->model('dashboard');

    }

    //etc...

}

utils.php:

class Utils extends CI_Controller {

    //prep for forms (on join or login views)
    public function prep_form() {
        $this->load->helper('form');
        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<li>', '</li>');
    }

    //etc - more util methods

}

为什么只调用一次并且实例化一次,为什么我仍在重新声明Utils?奇怪的是,对于网站的另一部分,我有另一个控制者,具有相同的模式,并且没有任何抱怨。

最后,我尝试将require指令移到控制器外部,以将其更改为require_once,以防万一确实有两次调用,并且两种情况下页面都只是挂起,最终解决了没有将源代码发送到浏览器的问题。 。

提前致谢。

参考方案

改名

helpers / utils.php

helpers / Utils.php。

Windows以外的服务器将类名与文件名匹配。

希望对您有帮助。

CodeIgniter ODBC问题 - php

好吧,我已经构建了一个用于MSSQL的应用程序,最初以这种方式运行它,我购买了一台新计算机,出于某种奇怪的原因,它不允许我通过MSSQL连接。因此,我设置了ODBC。它连接良好,但似乎讨厌活动记录。我将不得不重写所有查询吗?还是我想念的东西。我收到这样的错误。A Database Error Occurred Error Number: 37000 [Mic…

交叉加入codeigniter? - php

我正在尝试$this->db->join('tableTwo as b','','CROSS'); $result = $this->db->get('tableOne as a')->result(); 有解决办法吗? 参考方案 Codeignit…

阻止执行控制器 - php

我有一个在MY_Controller中运行的ACL。如果权限被拒绝,那么目前,我只是执行redirect('denied')-这是一个非常基本的控制器,它加载了一个非常基本的视图,显示“权限被拒绝”。但是,我想做的仍然是加载最初请求的uri,但加载“拒绝”视图而不是默认视图。我可以在MY_Controller中执行此操作,并且拒绝视图加载…

如何在PHP中检查数组是否为空(Codeigniter) - php

这是我的代码示例:public function show($imei,$start_time,$end_time,$dateto) { $from_time = str_replace('-','/',$start_time); $fromi=strtotime($from_time . ' ' …

在Codeigniter中以数组形式获取查询结果 - php

我有一个查询,如何获取结果作为数组? php大神给出的解决方案 像这样:$rs = $this->db->query(...); $array = $rs->result_array(); https://www.codeigniter.com/user_guide/database/results.html