プロジェクトにnWidartのlaravel-modulesを使用しています。アイデアは素晴らしいですが、私は大文字で始まるmodulesディレクトリを持つのが好きではありません(モジュール)。laravel-modulesをnWidartでインストールした後、eval()の 'Modules Media'クラスがLaravelの1行目に見つかりません
私は、構成ファイル内のディレクトリ名を変更することを決めた:
/config/modules.php
私はモジュールとして名前空間を保ったが、私はパスを変更:
return [
'namespace' => 'Modules',
'paths' => [
'modules' => base_path('modules'), // Used to be ('Modules')
]
];
私はcomposer.jsonにこれを追加ファイル:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Modules\\": "modules/"
}
},
ここで、Media:
というモジュールを作成しましたphp artisan module:make Media
そして、モデルメディアを作成:
php artisan module:make-model Media media
私のモデルはこのように書き:
<?php
namespace Modules\Media\Entities;
use Illuminate\Database\Eloquent\Model;
class Media extends Model{
//
public function categories(){
return $this->belongsToMany(Category::class, 'category_media');
}
}
すべてが正常に動作しますが、私は行くとき
php artisan tinker
をいじくり回しますそして、私はデータベースからオブジェクト(存在する)を読み込もうとします:
$file = \Modules\Media\Entities::find(1);
または
$file = Modules\Media\Entities::find(1);
または
$file = modules\Media\Entities::find(1);
または
$file = \modules\Media\Entities::find(1);
私はこのエラーを取得する:
PHP Fatal error: Class 'Modules\Media\Entities' not found in eval()'d code on line 1
何が原因で問題が発生している可能性がありますか?それはディレクトリ名の変更でしたか?私はcomposer.json設定で何かを見逃していますか?何も思いつきません。
てみ '作曲家のダンプ - 自動ロード ' –