我有以下目录和文件:
- backend
- models
Book.php
- frontend
- common
- OOP
CommonController.php
book.php
class Book extends ActiveRecord
{
...
}
commonController.php
public function actionIndex()
{
$path="backend\models\Book";
$model=$path::find();
}
在Windows操作系统中,它运行良好。但在$model=$path::find();
的Linux行中抛出了一个错误:
'backendmodelsBook' not found
因此,我将$path
更改为";后端/模型/书籍";。但是,我仍然有以下错误:
'backend/models/Book' not found
问题在于区分大小写。
类为Book
的文件应命名为Book.php
。窗口中的路径不区分大小写,因此工作正常。但在Linux中,它们是区分大小写的,所以自动加载器在文件backend/models/Book.php
中查找不存在的类。
代码中的格式backendmodelsBook
是正确的,因为这不是文件路径,而是使用反斜杠作为命名空间分隔符的完全限定名称。