【发布时间】:2021-11-21 02:03:45
【问题描述】:
我已经搜索了 stackoverflow,确实有很多关于这个错误的问题,但对于我的生活,我看不出我做错了什么。这是我的路线文件;
$routes->get('/', '/User_Public/Home::index');
$routes->get('about-us', '/User_Public/Home::aboutUs');
$routes->get('contact-us', '/User_Public/Home::contactUs');
这是我的目录结构:
这是 App/Controllers/User_Public/Home 的内容
namespace App\Controllers\User_Public;
use App\Controllers\User_PublicController;
use App\Models\UserModel;
class Home extends User_PublicController
{
public function __construct()
{
// run the parent's contruct
parent::__construct();
}
public function index()
{
//$this->cachePage(DAY);
// .= will add to exisiting css files.
$this->data['user_public_css'] .= '<!-- user_public_css extened -->
<link rel="stylesheet"
href="'.base_url().'/user_public/theme/bs4/css/carousel.css">';
$this->data['active_menu'] = '';
return view('user_public/home/index', $this->data);
}
public function aboutUs()
{
//$this->cachePage(DAY);
$this->data['active_menu'] = 'aboutUs';
return view('user_public/aboutUs/index', $this->data);
}
public function contactUs()
{
$this->data['active_menu'] = 'contactUs';
return view('user_public/contactUs/index', $this->data);
}
}
这是错误;
Fatal error: Cannot declare class
App\Controllers\User_Public\Home, because
the name is already in use in/var/www/XXXXXXXdomain/api.example.com/app_dir/app/Controllers/User_Public/Home.php on line 0
任何指针表示赞赏。
【问题讨论】:
-
这很可能是因为
app目录下除app/Controllers/User_Public/Home.php之外的文件之一在命名空间namespace App\Controllers\User_Public;下有一个标记为Home的class尝试搜索具有此命名空间的文件在他们的文件内容中。 -
没有其他类在任何地方使用 Home 方法
-
我指的不是这个。 尝试搜索文件内容中包含此命名空间的文件。
-
运行时得到什么输出:
grep -riF "namespace App\Controllers\User_Public" .在你的项目目录中? -
另外,你在项目目录下运行:
grep -riF "class Home" .,还会得到什么输出?
标签: php codeigniter namespaces codeigniter-4