LoginSignup
0
1

More than 1 year has passed since last update.

Laravel 「In Container.php Class request does not exist」の解消方法

Posted at

表題のエラーにハマってしまったので備忘録。

状況

実装したアプリの見た目の修正を行ったあと、バッチ処理の動作確認を行っている際
バッチが止まってしまうので確認したところ

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 [

上記の対応で無事エラーは発生しなくなりました。


今回の対応は無理矢理感がすごいので、もっと良い方法あれば教えていただけたら幸いです!
こちらのエラーで何が原因か見つけるまでに時間がかかったので、同じ状況の方の手助けになれば幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1