Laravel和正在使用命名空间-找不到类


Laravel and using namespaces - Class not found

我在Laravel提供的Models文件夹下创建了一个php文件。

里面有:

// Filename: Models/Shoopy.php
namespace Whatever'Something;
class Shoopy
{
    public function Toot(){};
}

现在,在另一个Model文件中,我正在使用该名称空间:

use 'Whatever'Something'Shoopy;
class AnotherModel
{
    public function Spop()
    {
        $harr = new Shoopy();
    }
}

它出现了一个Laravel错误:

class Whatever'Something'Shoopy not found

有什么想法吗?

我知道这是一个较老的问题,但如果您进入composer.json文件,您可能会看到类似。。。

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App''": "app/"
    }
},

你可以做的是告诉composer无论应该在哪里,比如它是否与Laravel通常保存文件的位置(或子文件夹)不同。

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App''": "app/",
        "Whatever''": "app/Whatever",
    }
},

类需要存在于目录路径与其命名空间匹配的文件中。这符合PSR-0标准。在您的示例中,尝试将Shoopy类放在文件中:

app/models/Whatever/Something/Shoopy.php

然后看看自动加载器是否能找到它。