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

时间:2014-08-26 14:30:04

标签: php laravel namespaces

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

我有内心:

// Filename: Models/Shoopy.php
namespace Whatever\Something;

class Shoopy
{
    public function Toot(){};
}

现在在另一个模型文件中我正在使用该命名空间:

use \Whatever\Something\Shoopy;

class AnotherModel
{
    public function Spop()
    {
        $harr = new Shoopy();
    }
}

它出现了Laravel错误:

class Whatever\Something\Shoopy not found

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

你可以做的是告诉作曲家哪里 Whatever 应该是什么,比如说它是Laravel通常保存文件的不同位置(或子文件夹)。

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

答案 1 :(得分:0)

类需要存在于具有与其命名空间匹配的目录路径的文件中。这是根据PSR-0 Standard。在您的示例中,请尝试将Shoopy类放在文件中:

app/models/Whatever/Something/Shoopy.php

然后查看自动加载器是否可以找到它。

相关问题