申し訳ありませんので、Laravelは過去数日間私にとって奇妙な動作をしています。カスタムクラスを参照するときの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
。モデルディレクトリに複数のモデルがあり、すべてのモデルが同じ名前空間に属しています。Student\myPackage\Model
問題が発生したときに、次のエラーが発生しています。
FatalThrowableError
クラスの学生\ mypackageと\モデル\ MyClassのは、「私は唯一のモデルクラスでこのエラーを持って、それが中で参照されすぎたときにということでした
が見つかりませんコントローラ、私は、以下のように、ルートファイルでそれを参照する場合、問題はありません。
use Student\myPackage\Model\MyClass as aMyClass
Route::get('/test', function() {
$g = new aMyClass; ($g);
})->middleware('web');
モデルファイルを消去してからすべてを再コーディングしても、問題は解決しません。私のコントローラでは、使用されていたすべてのモデルクラスに対してuseステートメントを書き直しました。私は上記クラスのuseステートメントを何回も書き直したことを覚えていますが、うまくいきませんでした。とにかく今は動作していますが、今は別のクラス、すなわちmailableクラスと同じ問題があります。
問題がある可能性があります。クラスが参照されている順番や、見つからない名前空間に関することですか?
あなたは、あなたのモデルの名前空間を複数形を忘れたパッケージのComposer.json
"autoload": {
"psr-0": {
"Student\\myPackage\\": "src/"
}
}
composer.jsonのオートロードビットも共有できますか? – apokryfos
'' psr-0 ":{ " Student \\ MyPackage \\ ":" student/myPackage/src " }'これを試してみてください! –
@HirenGohelいいえ、動作しませんでした。 – StudentX