表題のエラーにハマってしまったので備忘録。
状況
実装したアプリの見た目の修正を行ったあと、バッチ処理の動作確認を行っている際
バッチが止まってしまうので確認したところ
In Container.php line 877: Target class [request] does not exist.
こちらのエラーが発生していました。
原因
-
config
ディレクトリ以下の設定ファイルにrequest()
ヘルパを使用してしまっていたため
config/adminlte.php
<?php
$logo = 'logo.png';
if (request()->path() == 'login') { // ここ
$logo = 'logo.png';
}
return [
…
バッチ処理等コンソール上での処理ではリクエストを使用しないので
request()
の箇所でエラーとなっていたようです。
対策
今回は設定ファイル上でログイン画面を判定する必要がありrequest()
ヘルパを使用しない方法は難しかったので、
コンソール上で実行されていないか判定を追加しました。
app()->runningInConsole() === false
config/adminlte.php
<?php
$logo = 'logo.png';
if ((app()->runningInConsole() === false) && (request()->path() == 'login')) { // ここ
$logo = 'logo.png';
}
return [
…
上記の対応で無事エラーは発生しなくなりました。
今回の対応は無理矢理感がすごいので、もっと良い方法あれば教えていただけたら幸いです!
こちらのエラーで何が原因か見つけるまでに時間がかかったので、同じ状況の方の手助けになれば幸いです。