Laravel - Fatal error: Uncaught Error: Class 'Auth' not found
Laravel - Fatal error: Uncaught Error: Class 'Auth' not found
我收到此错误消息:
Fatal error: Uncaught Error: Class 'Auth' not found in F:\projects\websites\main_website\app\Exceptions\Handler.php:65 Stack trace: #0 F:\projects\websites\main_website\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(326): App\Exceptions\Handler->render(Object(Illuminate\Http\Request), Object(Symfony\Component\Debug\Exception\FatalThrowableError)) #1 F:\projects\websites\main_website\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(124): Illuminate\Foundation\Http\Kernel->renderException(Object(Illuminate\Http\Request), Object(Symfony\Component\Debug\Exception\FatalThrowableError)) #2 F:\projects\websites\main_website\public\index.php(56): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) #3 {main} thrown in F:\projects\websites\main_website\app\Exceptions\Handler.php on line 65
代码发生在:
$errorLog->error_happened_to = (Auth::check() ? Auth::user()->username : 'Guest');
整个class:
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use App\Database\Ec9\Website\ErrorLog;
use Jenssegers\Agent\Agent;
use Auth;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
if (strlen($exception->getMessage()) > 0) {
$agent = new Agent();
$errorLog = new ErrorLog;
$errorLog->error_message = $exception->getMessage();
$errorLog->error_file = $exception->getFile();
$errorLog->error_line = $exception->getLine();
$errorLog->request_ip = $request->ip();
$errorLog->request_url = $request->root();
$errorLog->request_device = $agent->isDesktop() ? 'Desktop' : ($agent->isMobile() ? 'Mobile' : 'Tablet');
$errorLog->request_system = $agent->platform() . ' ' . $agent->version($agent->platform());
$errorLog->request_browser = $agent->browser();
$errorLog->error_happened_to = (Auth::check() ? Auth::user()->username : 'Guest');
$errorLog->save();
}
return parent::render($request, $exception);
}
}
将use Auth;
替换为use Illuminate\Support\Facades\Auth;
正如我在之前的评论中所说,在 use
语句中使用完整的命名空间。
用这个替换你的use Auth;
。
use Illuminate\Support\Facades\Auth;
对于曾经想解决此问题的人,我通过将 use Auth;
替换为 use Illuminate\Support\Facades\Auth;
来修复它
对于遇到相同错误消息的人。
此问题可能与缺少以下目录之一有关:
storage/framework/cache
storage/framework/sessions
storage/framework/views
bootstrap/cache
它们都必须是可写的。
我收到此错误消息:
Fatal error: Uncaught Error: Class 'Auth' not found in F:\projects\websites\main_website\app\Exceptions\Handler.php:65 Stack trace: #0 F:\projects\websites\main_website\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(326): App\Exceptions\Handler->render(Object(Illuminate\Http\Request), Object(Symfony\Component\Debug\Exception\FatalThrowableError)) #1 F:\projects\websites\main_website\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(124): Illuminate\Foundation\Http\Kernel->renderException(Object(Illuminate\Http\Request), Object(Symfony\Component\Debug\Exception\FatalThrowableError)) #2 F:\projects\websites\main_website\public\index.php(56): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) #3 {main} thrown in F:\projects\websites\main_website\app\Exceptions\Handler.php on line 65
代码发生在:
$errorLog->error_happened_to = (Auth::check() ? Auth::user()->username : 'Guest');
整个class:
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use App\Database\Ec9\Website\ErrorLog;
use Jenssegers\Agent\Agent;
use Auth;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
if (strlen($exception->getMessage()) > 0) {
$agent = new Agent();
$errorLog = new ErrorLog;
$errorLog->error_message = $exception->getMessage();
$errorLog->error_file = $exception->getFile();
$errorLog->error_line = $exception->getLine();
$errorLog->request_ip = $request->ip();
$errorLog->request_url = $request->root();
$errorLog->request_device = $agent->isDesktop() ? 'Desktop' : ($agent->isMobile() ? 'Mobile' : 'Tablet');
$errorLog->request_system = $agent->platform() . ' ' . $agent->version($agent->platform());
$errorLog->request_browser = $agent->browser();
$errorLog->error_happened_to = (Auth::check() ? Auth::user()->username : 'Guest');
$errorLog->save();
}
return parent::render($request, $exception);
}
}
将use Auth;
替换为use Illuminate\Support\Facades\Auth;
正如我在之前的评论中所说,在 use
语句中使用完整的命名空间。
用这个替换你的use Auth;
。
use Illuminate\Support\Facades\Auth;
对于曾经想解决此问题的人,我通过将 use Auth;
替换为 use Illuminate\Support\Facades\Auth;
对于遇到相同错误消息的人。
此问题可能与缺少以下目录之一有关:
storage/framework/cache
storage/framework/sessions
storage/framework/views
bootstrap/cache
它们都必须是可写的。