Deprecated: Return type of Illuminate\Container\Container::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1231

Deprecated: Return type of Illuminate\Container\Container::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1242

Deprecated: Return type of Illuminate\Container\Container::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1254

Deprecated: Return type of Illuminate\Container\Container::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1267

Deprecated: Return type of Illuminate\Routing\RouteCollection::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php on line 355

Deprecated: Return type of Illuminate\Routing\RouteCollection::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php on line 345

Deprecated: Return type of Illuminate\Http\Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Http/Request.php on line 641

Deprecated: Return type of Illuminate\Http\Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Http/Request.php on line 655

Deprecated: Return type of Illuminate\Http\Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Http/Request.php on line 667

Deprecated: Return type of Illuminate\Http\Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Http/Request.php on line 678

Deprecated: Return type of Illuminate\Config\Repository::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Config/Repository.php on line 141

Deprecated: Return type of Illuminate\Config\Repository::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Config/Repository.php on line 152

Deprecated: Return type of Illuminate\Config\Repository::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Config/Repository.php on line 164

Deprecated: Return type of Illuminate\Config\Repository::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Config/Repository.php on line 175
Whoops! There was an error.
UnexpectedValueException
The stream or file "/www/wwwroot/tdaotg.me/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: Unable to create configured logger. Using emergency logger. Context: {"exception":{}} UnexpectedValueException thrown with message "The stream or file "/www/wwwroot/tdaotg.me/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: Unable to create configured logger. Using emergency logger. Context: {"exception":{}}" Stacktrace: #15 UnexpectedValueException in /www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:157 #14 Monolog\Handler\StreamHandler:write in /www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:48 #13 Monolog\Handler\AbstractProcessingHandler:handle in /www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Logger.php:400 #12 Monolog\Logger:addRecord in /www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Logger.php:690 #11 Monolog\Logger:emergency in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/Logger.php:176 #10 Illuminate\Log\Logger:writeLog in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/Logger.php:51 #9 Illuminate\Log\Logger:emergency in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:124 #8 Illuminate\Log\LogManager:Illuminate\Log\{closure} in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Support/helpers.php:422 #7 tap in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:126 #6 Illuminate\Log\LogManager:get in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:98 #5 Illuminate\Log\LogManager:driver in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:543 #4 Illuminate\Log\LogManager:error in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:124 #3 Illuminate\Foundation\Exceptions\Handler:report in /www/wwwroot/tdaotg.me/app/Exceptions/Handler.php:39 #2 App\Exceptions\Handler:report in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:92 #1 Illuminate\Foundation\Bootstrap\HandleExceptions:handleException in /www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:134 #0 Illuminate\Foundation\Bootstrap\HandleExceptions:handleShutdown in [internal]:0
15
UnexpectedValueException
…/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php157
14
Monolog\Handler\StreamHandler write
…/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php48
13
Monolog\Handler\AbstractProcessingHandler handle
…/vendor/monolog/monolog/src/Monolog/Logger.php400
12
Monolog\Logger addRecord
…/vendor/monolog/monolog/src/Monolog/Logger.php690
11
Monolog\Logger emergency
…/vendor/laravel/framework/src/Illuminate/Log/Logger.php176
10
Illuminate\Log\Logger writeLog
…/vendor/laravel/framework/src/Illuminate/Log/Logger.php51
9
Illuminate\Log\Logger emergency
…/vendor/laravel/framework/src/Illuminate/Log/LogManager.php124
8
Illuminate\Log\LogManager Illuminate\Log\{closure}
…/vendor/laravel/framework/src/Illuminate/Support/helpers.php422
7
tap
…/vendor/laravel/framework/src/Illuminate/Log/LogManager.php126
6
Illuminate\Log\LogManager get
…/vendor/laravel/framework/src/Illuminate/Log/LogManager.php98
5
Illuminate\Log\LogManager driver
…/vendor/laravel/framework/src/Illuminate/Log/LogManager.php543
4
Illuminate\Log\LogManager error
…/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php124
3
Illuminate\Foundation\Exceptions\Handler report
…/app/Exceptions/Handler.php39
2
App\Exceptions\Handler report
…/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php92
1
Illuminate\Foundation\Bootstrap\HandleExceptions handleException
…/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php134
0
Illuminate\Foundation\Bootstrap\HandleExceptions handleShutdown
[internal]0
/www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
            if (null === $url || '' === $url) {
                throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().' . Utils::getRecordMessageForException($record));
            }
            $this->createDir($url);
            $this->errorMessage = null;
            set_error_handler(function (...$args) {
                return $this->customErrorHandler(...$args);
            });
            try {
                $stream = fopen($url, $this->fileOpenMode);
                if ($this->filePermission !== null) {
                    @chmod($url, $this->filePermission);
                }
            } finally {
                restore_error_handler();
            }
            if (!is_resource($stream)) {
                $this->stream = null;
 
                throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened in append mode: '.$this->errorMessage, $url) . Utils::getRecordMessageForException($record));
            }
            stream_set_chunk_size($stream, $this->streamChunkSize);
            $this->stream = $stream;
        }
 
        $stream = $this->stream;
        if (!is_resource($stream)) {
            throw new \LogicException('No stream was opened yet' . Utils::getRecordMessageForException($record));
        }
 
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($stream, LOCK_EX);
        }
 
        $this->errorMessage = null;
        set_error_handler(function (...$args) {
            return $this->customErrorHandler(...$args);
        });
        try {
Arguments
  1. """
    The stream or file "/www/wwwroot/tdaotg.me/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied\n
    The exception occurred while attempting to log: Unable to create configured logger. Using emergency logger.\n
    Context: {"exception":{}}
    """
    
/www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php
    use ProcessableHandlerTrait;
    use FormattableHandlerTrait;
 
    /**
     * {@inheritDoc}
     */
    public function handle(array $record): bool
    {
        if (!$this->isHandling($record)) {
            return false;
        }
 
        if ($this->processors) {
            /** @var Record $record */
            $record = $this->processRecord($record);
        }
 
        $record['formatted'] = $this->getFormatter()->format($record);
 
        $this->write($record);
 
        return false === $this->bubble;
    }
 
    /**
     * Writes the record down to the log of the implementing handler
     *
     * @phpstan-param FormattedRecord $record
     */
    abstract protected function write(array $record): void;
 
    /**
     * @return void
     */
    public function reset()
    {
        parent::reset();
 
        $this->resetProcessors();
    }
/www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Logger.php
                        'level_name' => $levelName,
                        'channel' => $this->name,
                        'datetime' => $datetime ?? new DateTimeImmutable($this->microsecondTimestamps, $this->timezone),
                        'extra' => [],
                    ];
 
                    try {
                        foreach ($this->processors as $processor) {
                            $record = $processor($record);
                        }
                    } catch (Throwable $e) {
                        $this->handleException($e, $record);
 
                        return true;
                    }
                }
 
                // once the record exists, send it to all handlers as long as the bubbling chain is not interrupted
                try {
                    if (true === $handler->handle($record)) {
                        break;
                    }
                } catch (Throwable $e) {
                    $this->handleException($e, $record);
 
                    return true;
                }
            }
        } finally {
            if ($this->detectCycles) {
                if (isset($fiber)) {
                    $this->fiberLogDepth[$fiber]--;
                } else {
                    $this->logDepth--;
                }
            }
        }
 
        return null !== $record;
    }
/www/wwwroot/tdaotg.me/vendor/monolog/monolog/src/Monolog/Logger.php
     *
     * @param string|Stringable $message The log message
     * @param mixed[]           $context The log context
     */
    public function alert($message, array $context = []): void
    {
        $this->addRecord(static::ALERT, (string) $message, $context);
    }
 
    /**
     * Adds a log record at the EMERGENCY level.
     *
     * This method allows for compatibility with common interfaces.
     *
     * @param string|Stringable $message The log message
     * @param mixed[]           $context The log context
     */
    public function emergency($message, array $context = []): void
    {
        $this->addRecord(static::EMERGENCY, (string) $message, $context);
    }
 
    /**
     * Sets the timezone to be used for the timestamp of log records.
     */
    public function setTimezone(DateTimeZone $tz): self
    {
        $this->timezone = $tz;
 
        return $this;
    }
 
    /**
     * Returns the timezone to be used for the timestamp of log records.
     */
    public function getTimezone(): DateTimeZone
    {
        return $this->timezone;
    }
 
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/Logger.php
     * @return void
     */
    public function write($level, $message, array $context = [])
    {
        $this->writeLog($level, $message, $context);
    }
 
    /**
     * Write a message to the log.
     *
     * @param  string  $level
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    protected function writeLog($level, $message, $context)
    {
        $this->fireLogEvent($level, $message = $this->formatMessage($message), $context);
 
        $this->logger->{$level}($message, $context);
    }
 
    /**
     * Register a new callback handler for when a log event is triggered.
     *
     * @param  \Closure  $callback
     * @return void
     *
     * @throws \RuntimeException
     */
    public function listen(Closure $callback)
    {
        if (! isset($this->dispatcher)) {
            throw new RuntimeException('Events dispatcher has not been set.');
        }
 
        $this->dispatcher->listen(MessageLogged::class, $callback);
    }
 
    /**
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/Logger.php
     * @param  \Psr\Log\LoggerInterface  $logger
     * @param  \Illuminate\Contracts\Events\Dispatcher|null  $dispatcher
     * @return void
     */
    public function __construct(LoggerInterface $logger, Dispatcher $dispatcher = null)
    {
        $this->logger = $logger;
        $this->dispatcher = $dispatcher;
    }
 
    /**
     * Log an emergency message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function emergency($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log an alert message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function alert($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log a critical message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
    {
        return $this->channels;
    }
 
    /**
     * Attempt to get the log from the local cache.
     *
     * @param  string  $name
     * @return \Psr\Log\LoggerInterface
     */
    protected function get($name)
    {
        try {
            return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) {
                return $this->channels[$name] = $this->tap($name, new Logger($logger, $this->app['events']));
            });
        } catch (Throwable $e) {
            return tap($this->createEmergencyLogger(), function ($logger) use ($e) {
                $logger->emergency('Unable to create configured logger. Using emergency logger.', [
                    'exception' => $e,
                ]);
            });
        }
    }
 
    /**
     * Apply the configured taps for the logger.
     *
     * @param  string  $name
     * @param  \Illuminate\Log\Logger  $logger
     * @return \Illuminate\Log\Logger
     */
    protected function tap($name, Logger $logger)
    {
        foreach ($this->configurationFor($name)['tap'] ?? [] as $tap) {
            [$class, $arguments] = $this->parseTap($tap);
 
            $this->app->make($class)->__invoke($logger, ...explode(',', $arguments));
        }
 
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Support/helpers.php
            goto beginning;
        }
    }
}
 
if (! function_exists('tap')) {
    /**
     * Call the given Closure with the given value then return the value.
     *
     * @param  mixed  $value
     * @param  callable|null  $callback
     * @return mixed
     */
    function tap($value, $callback = null)
    {
        if (is_null($callback)) {
            return new HigherOrderTapProxy($value);
        }
 
        $callback($value);
 
        return $value;
    }
}
 
if (! function_exists('throw_if')) {
    /**
     * Throw the given exception if the given condition is true.
     *
     * @param  mixed  $condition
     * @param  \Throwable|string  $exception
     * @param  array  ...$parameters
     * @return mixed
     *
     * @throws \Throwable
     */
    function throw_if($condition, $exception, ...$parameters)
    {
        if ($condition) {
            throw (is_string($exception) ? new $exception(...$parameters) : $exception);
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
    }
 
    /**
     * Attempt to get the log from the local cache.
     *
     * @param  string  $name
     * @return \Psr\Log\LoggerInterface
     */
    protected function get($name)
    {
        try {
            return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) {
                return $this->channels[$name] = $this->tap($name, new Logger($logger, $this->app['events']));
            });
        } catch (Throwable $e) {
            return tap($this->createEmergencyLogger(), function ($logger) use ($e) {
                $logger->emergency('Unable to create configured logger. Using emergency logger.', [
                    'exception' => $e,
                ]);
            });
        }
    }
 
    /**
     * Apply the configured taps for the logger.
     *
     * @param  string  $name
     * @param  \Illuminate\Log\Logger  $logger
     * @return \Illuminate\Log\Logger
     */
    protected function tap($name, Logger $logger)
    {
        foreach ($this->configurationFor($name)['tap'] ?? [] as $tap) {
            [$class, $arguments] = $this->parseTap($tap);
 
            $this->app->make($class)->__invoke($logger, ...explode(',', $arguments));
        }
 
        return $logger;
    }
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
    /**
     * Get a log channel instance.
     *
     * @param  string|null  $channel
     * @return \Psr\Log\LoggerInterface
     */
    public function channel($channel = null)
    {
        return $this->driver($channel);
    }
 
    /**
     * Get a log driver instance.
     *
     * @param  string|null  $driver
     * @return \Psr\Log\LoggerInterface
     */
    public function driver($driver = null)
    {
        return $this->get($driver ?? $this->getDefaultDriver());
    }
 
    /**
     * @return array
     */
    public function getChannels()
    {
        return $this->channels;
    }
 
    /**
     * Attempt to get the log from the local cache.
     *
     * @param  string  $name
     * @return \Psr\Log\LoggerInterface
     */
    protected function get($name)
    {
        try {
            return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) {
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function critical($message, array $context = [])
    {
        $this->driver()->critical($message, $context);
    }
 
    /**
     * Runtime errors that do not require immediate action but should typically
     * be logged and monitored.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function error($message, array $context = [])
    {
        $this->driver()->error($message, $context);
    }
 
    /**
     * Exceptional occurrences that are not errors.
     *
     * Example: Use of deprecated APIs, poor use of an API, undesirable things
     * that are not necessarily wrong.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function warning($message, array $context = [])
    {
        $this->driver()->warning($message, $context);
    }
 
    /**
     * Normal but significant events.
     *
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php
        }
 
        if (Reflector::isCallable($reportCallable = [$e, 'report'])) {
            if (($response = $this->container->call($reportCallable)) !== false) {
                return $response;
            }
        }
 
        try {
            $logger = $this->container->make(LoggerInterface::class);
        } catch (Exception $ex) {
            throw $e;
        }
 
        $logger->error(
            $e->getMessage(),
            array_merge(
                $this->exceptionContext($e),
                $this->context(),
                ['exception' => $e]
            )
        );
    }
 
    /**
     * Determine if the exception should be reported.
     *
     * @param  \Exception  $e
     * @return bool
     */
    public function shouldReport(Exception $e)
    {
        return ! $this->shouldntReport($e);
    }
 
    /**
     * Determine if the exception is in the "do not report" list.
     *
     * @param  \Exception  $e
     * @return bool
/www/wwwroot/tdaotg.me/app/Exceptions/Handler.php
     * A list of the inputs that are never flashed for validation exceptions.
     *
     * @var array
     */
    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];
 
    /**
     * Report or log an exception.
     *
     * @param  \Exception  $exception
     * @return void
     *
     * @throws \Exception
     */
    public function report(Exception $exception)
    {
        parent::report($exception);
    }
 
    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $exception
     * @return \Symfony\Component\HttpFoundation\Response
     *
     * @throws \Exception
     */
    public function render($request, Exception $exception)
    {
        if ($exception instanceof AppException) {
            $layout = dujiaoka_config_get('template', 'layui');
            $tplPath = $layout . '/errors/error';
            return view($tplPath, ['title' => __('dujiaoka.error_title'), 'content' => $exception->getMessage(), 'url' => ""]);
        }
        return parent::render($request, $exception);
    }
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php
    /**
     * Handle an uncaught exception from the application.
     *
     * Note: Most exceptions can be handled via the try / catch block in
     * the HTTP and Console kernels. But, fatal error exceptions must
     * be handled differently since they are not normal exceptions.
     *
     * @param  \Throwable  $e
     * @return void
     */
    public function handleException($e)
    {
        if (! $e instanceof Exception) {
            $e = new FatalThrowableError($e);
        }
 
        try {
            self::$reservedMemory = null;
 
            $this->getExceptionHandler()->report($e);
        } catch (Exception $e) {
            //
        }
 
        if ($this->app->runningInConsole()) {
            $this->renderForConsole($e);
        } else {
            $this->renderHttpResponse($e);
        }
    }
 
    /**
     * Render an exception to the console.
     *
     * @param  \Exception  $e
     * @return void
     */
    protected function renderForConsole(Exception $e)
    {
        $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e);
/www/wwwroot/tdaotg.me/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php
    /**
     * Render an exception as an HTTP response and send it.
     *
     * @param  \Exception  $e
     * @return void
     */
    protected function renderHttpResponse(Exception $e)
    {
        $this->getExceptionHandler()->render($this->app['request'], $e)->send();
    }
 
    /**
     * Handle the PHP shutdown event.
     *
     * @return void
     */
    public function handleShutdown()
    {
        if (! is_null($error = error_get_last()) && $this->isFatal($error['type'])) {
            $this->handleException($this->fatalExceptionFromError($error, 0));
        }
    }
 
    /**
     * Create a new fatal exception instance from an error array.
     *
     * @param  array  $error
     * @param  int|null  $traceOffset
     * @return \Symfony\Component\Debug\Exception\FatalErrorException
     */
    protected function fatalExceptionFromError(array $error, $traceOffset = null)
    {
        return new FatalErrorException(
            $error['message'], $error['type'], 0, $error['file'], $error['line'], $traceOffset
        );
    }
 
    /**
     * Determine if the error type is fatal.
     *
[internal]

Environment & details:

empty
empty
empty
empty
empty
Key Value
USER
"www"
HOME
"/home/www"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"tdaotg.me"
PATH_INFO
""
REDIRECT_STATUS
"200"
SERVER_NAME
"tdaotg.me"
SERVER_PORT
"443"
SERVER_ADDR
"10.0.149.2"
REMOTE_PORT
"57249"
REMOTE_ADDR
"216.73.217.51"
SERVER_SOFTWARE
"nginx/1.28.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/www/wwwroot/tdaotg.me/public"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
SCRIPT_FILENAME
"/www/wwwroot/tdaotg.me/public/index.php"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1794281546.0364
REQUEST_TIME
1794281546
APP_NAME
"独角数卡"
APP_ENV
"local"
APP_KEY
"base64:2s+jazehGlIdlNdLGiV3N01XDvgVtZeSEWHSRSbJVtI="
APP_DEBUG
"true"
APP_URL
"https://ek.zzfw.xyz/"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_PORT
"3306"
DB_DATABASE
"ek_zzfw_xyz"
DB_USERNAME
"ek_zzfw_xyz"
DB_PASSWORD
"QAXC8RT5mSyptzGD"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
""
REDIS_PORT
"6379"
BROADCAST_DRIVER
"log"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
CACHE_DRIVER
"redis"
QUEUE_CONNECTION
"redis"
DUJIAO_ADMIN_LANGUAGE
"zh_CN"
ADMIN_ROUTE_PREFIX
"/huang"
ADMIN_HTTPS
"true"
Key Value
APP_NAME
"独角数卡"
APP_ENV
"local"
APP_KEY
"base64:2s+jazehGlIdlNdLGiV3N01XDvgVtZeSEWHSRSbJVtI="
APP_DEBUG
"true"
APP_URL
"https://ek.zzfw.xyz/"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"127.0.0.1"
DB_PORT
"3306"
DB_DATABASE
"ek_zzfw_xyz"
DB_USERNAME
"ek_zzfw_xyz"
DB_PASSWORD
"QAXC8RT5mSyptzGD"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
""
REDIS_PORT
"6379"
BROADCAST_DRIVER
"log"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
CACHE_DRIVER
"redis"
QUEUE_CONNECTION
"redis"
DUJIAO_ADMIN_LANGUAGE
"zh_CN"
ADMIN_ROUTE_PREFIX
"/huang"
ADMIN_HTTPS
"true"
0. Whoops\Handler\PrettyPageHandler