0

在默认的 FuelPHP 安装中工作命名空间我将以下内容添加到欢迎控制器(否则未经编辑),我开始收到错误:

ErrorException [ Compile Error ]: Cannot redeclare class Fuel\Controller\Welcome"

我的代码是:

<?php

namespace Fuel\Controller;

use Fuel\Core\Controller;


class Welcome extends Controller
{
...
}

这可能是初学者的问题,但我无法弄清楚为什么会发生碰撞,我已经尝试了我能想到的一切。

编辑:我什至尝试将以下代码放在类前面,错误消失了,但显示了一个非常通用的 404 页面。(不是FuelPHP默认显示的,而是黑色/灰色的)

if (class_exists("Controller\Welcome",false)) {
//    echo "here. (" . __FILE__ . ":" . __LINE__ . ")\n";

} else {
    //Class definition...

}
4

3 回答 3

1

答案原来是您必须将配置文件中的控制器前缀更改为以下内容:

  'controller_prefix' => 'Controller\\',

这实际上是写在文档中的。(傻我)

于 2013-08-27T03:50:45.437 回答
0

如果您的应用程序具有multiple classes相同的名称Welcome,那么它将给出error

one file

class Welcome extends Controller
{
   ...
}

another file

class Welcome extends Controller
{
  ...
} 

Codeigniter的可能重复项无法重新声明类 Hierarchy。看到这个PHP 致命错误:无法重新声明类

于 2013-08-26T07:02:46.707 回答
0

在您的控制器中,您不需要设置命名空间。该应用程序知道默认命名空间。

如果您删除namespace Fuel\Controller;此错误将消失。

于 2013-08-26T12:06:15.780 回答