0

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

这是在作曲家:

"Shorty\\":"app/Shorty"

注意:我也尝试了上述方法"Shorty\\":"app/Shorty/Models"

目录结构:app/Shorty/Models/Trap.php

内部Trap.php

namespace Shorty\Models;

use Illuminate\Database\Eloquent\Model as Eloquent;

    class Trap{
    #code here
    }

在我的路线中:

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

我得到:找不到类“陷阱”

我做错了什么?

4

1 回答 1

0

如果类名正确,您将不会收到此错误消息:

Class 'Trap' not found

但是这个

Class 'Shorty\Models\Trap' not found

没有提及包含其命名空间的完全限定的类名告诉我,缺少该类的代码既没有namespace声明,也没有 import with use,来导入这个“Trap”类。

或者更准确地说:

此代码将抱怨缺少“陷阱”类。

Trap::leftJoin();

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

\Shorty\Models\Trap::leftJoin();

还有这个:

use Shorty\Models\Trap;

Trap::leftJoin();

或者这个:

namespace Shorty\Models;

Trap::leftJoin();

当 PHP 抱怨某个类不存在时,它总是在别名、相对命名空间间接和其他内容之后显示该类的完全评估的最终名称。

于 2015-07-06T00:42:53.547 回答