名称间距不起作用,使用composer psr-4



我使用的是slim框架、composer和psr-4自动加载。

这是在作曲家:

"Shorty\":"app/Shorty"

注意:我在"Shorty\":"app/Shorty/Models" 上也尝试了上述操作

董事会结构:app/Shorty/Models/Trap.php

内部Trap.php:

namespace ShortyModels;
use IlluminateDatabaseEloquentModel as Eloquent;
    class Trap{
    #code here
    }

在我的路线上:

$users=Trap::leftJoin('users', function($join){

我得到:类"陷阱"未找到

我做错了什么?

如果类名是正确的,则不会收到以下错误消息:

Class 'Trap' not found

但是这个

Class 'ShortyModelsTrap' not found

没有提到完全限定的类名,包括它的名称空间告诉我,缺少该类的代码既没有namespace语句,也没有使用use导入来导入这个"陷阱"类。

或者更准确地说:

此代码将抱怨缺少"Trap"类。

Trap::leftJoin();

此代码会抱怨缺少"Shorty\Models\Trap"类。

ShortyModelsTrap::leftJoin();

以及这个:

use ShortyModelsTrap;
Trap::leftJoin();

或者这个:

namespace ShortyModels;
Trap::leftJoin();

当PHP抱怨某个类不存在时,它总是在别名、相对名称空间间接寻址等后面显示该类的完全求值的最终名称。

最新更新