无法在cakePHP中重新声明config()错误

时间:2011-01-13 09:50:16

标签: cakephp config php redeclare

我收到错误致命错误:无法重新声明config()(之前在... / basics.php:58中声明,在实时服务器中。它在我的本地服务器中工作正常,但是当我将网站上传到实时服务器时,我得到了致命的错误。 我检查了config()是否被多次声明,但它只在basics.php文件中声明了一次。 还遵循命名约定,因为它在本地服务器中正常工作。它只在实时站点中显示此类错误。 请为此提出解决方案。

非常感谢您的帮助。

5 个答案:

答案 0 :(得分:2)

将$ uses设置为array(),将$ autoRender设置为false,如下所示将解决此问题

   class IndexController extends AppController
    {

        public $uses = array();
        public $autoRender = false;

        public function index()
        {
            echo 'test';
        }

    }

答案 1 :(得分:2)

我在运行Apache时遇到此错误,最终与我的.htaccess文件被忽略 - 我一直在重新配置Apache,并且意外地将AllowOverride设置为None配置文件,它以某种方式导致此错误。

因此,简而言之,在您的http.conf或您的某个网站配置中,请确保相关目录部分中的AllowOverride设置为All(或None以外的其他内容),这是我的:

<Directory /var/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All 
    Order allow,deny
    allow from all
</Directory>

答案 2 :(得分:1)

如果多次包含“basics.php”,就会发生这种情况。您可以使用include_once/require_once代替include/require来阻止它。

但这并不能解释为什么它会在您的本地网络服务器上运行。

答案 3 :(得分:1)

以防有人碰巧搜索此内容。

我在安装了cakephp 1.3.11的Windows 2003服务器上遇到了同样的错误。在我的情况下,这是因为我在一个类关联声明中有一个拼写错误。

我已经定义了一个 Client 类,其中包含与Account类的hasOne关联。在那里我错误地将className属性输入到 Client ,它创建了一个循环并导致无法重新声明cakePHP中的config()错误

答案 4 :(得分:1)

检查您的PHP版本。当您使用比5.3更严格的PHP版本5.4时会发生错误

打开你的cake / bootstrap.php并进行更改以确保每个文件都加载一次函数'require_once'。代码将是这样的:

require_once CORE_PATH . 'cake' . DS . 'basics.php';
require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php';
require_once LIBS . 'object.php';
require_once LIBS . 'inflector.php';
require_once LIBS . 'configure.php';
require_once LIBS . 'set.php';
require_once LIBS . 'cache.php';
Configure::getInstance();
require_once CAKE . 'dispatcher.php';