ファイルの内容を取得しようとすると、コンソールで次のエラーが発生します。
[League\Flysystem\FileNotFoundException]ファイルがパスに見つかりません:C:/wamp64/www/lion/resources/generate/json/Car.json
エクスプローラーでその正確なパスをコピーして貼り付けると、jsonファイルが正常に開きます。
これが私のコードです:
$this->json = json_encode(Storage::get(resource_path('generate/json/'.$this->argument('model').'.json')));
私はそれを考え出した。
_Storage::get
_は、実際にはファイルシステムのディスク構成に対する相対パスを使用しているため、エラーメッセージ自体は誤解を招くものです。
代わりにfile_get_contents()
を使用して問題を修正しました。
他の人が指摘したように、Storage::get
は実際にはファイルシステムのディスク構成に対する相対パスを使用しているため、デフォルトではlocal
ドライバーが使用されます(config/filesystems.php
):
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
したがって、たとえばlocal
ドライバを使用していて、ファイルがapp/public/yourfile.ext
にある場合、Storage
の呼び出しは次のようになります。
Storage::get('public/yourfile.ext');
これを試して
$this->json = json_encode(app_path('/resources/generate/json/Car.json');