好吧,所以Laravel对我来说在过去的几天里表现得很奇怪。
我正在开发Laravel Package并具有以下目录结构:
vendor
-student
--myPackage
---src
----controllers
----models
----mail
----routes
----views
我的一个模型文件示例:
<?php
namespace Student\myPackage\Model;
use Illuminate\Database\Eloquent\Model as BaseModel;
class MyClass extends BaseModel
{
//
}
我正在尝试访问控制器中的模型文件,例如use Student\myPackage\Model\MyClass as aMyClass
。我在models目录中有几个模型,每个模型都在同一名称空间下,即Student\myPackage\Model
问题是我在访问路线时遇到以下错误。
FatalThrowableError
未找到类'Student \ myPackage \ Model \ MyClass'
我只在一个模型类上出现此错误,并且在控制器中引用它时,如果我在路径文件中引用它,如下所示,则没有问题。
use Student\myPackage\Model\MyClass as aMyClass
Route::get('/test', function() {
$g = new aMyClass; ($g);
})->middleware('web');
我甚至擦掉模型文件,然后重新编码所有内容,但问题仍然存在。然后在我的控制器中,我为所有正在使用的模型类重新编写了use语句,并且它工作正常。记得我甚至多次重写了该课程的使用陈述,但它只是没有用。无论如何,所以现在它正在工作,但现在我和另一个类,一个可邮寄的类有同样的问题。
可能是什么问题,是关于引用类的顺序还是关于我缺少的命名空间的内容?
包的Composer.json
"autoload": {
"psr-0": {
"Student\\myPackage\\": "src/"
}
}
答案 0 :(得分:0)
您忘了复制模型命名空间。
尝试使用此use
声明:
use Student\myPackage\Models\MyClass as aMyClass;
您的模型位于src/models
,作曲家会将模型命名为Student\myPackage\Models
答案 1 :(得分:0)
您的命名空间不正确
Student\myPackage\Model\MyClass
将其更改为
Student\myPackage\Models\MyClass
检查完毕后,注册您的服务提供商(如果有,则为别名)。使用别名可以帮助您节省时间和精力。