我在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
然后看看自动加载器是否能找到它。