Ошибка Laravel 500 (неопределенная переменная 'e') после добавления нового маршрута? - PullRequest
0 голосов
/ 29 августа 2018

Я только что работал над моим старым проектом, где мне пришлось добавить одну новую страницу и ссылку на нее. Ничего особо сложного, а на месте все отлично работает. Только после передачи моих модификаций на сервер маршрут отказывается работать, из-за ошибки 500. Я включил отладку и добавил try / catch, чтобы зафиксировать ошибку, но не могу понять, что может быть точным источником ошибки.

Index.php:

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

try {
    $response = $kernel->handle(
        $request = Illuminate\Http\Request::capture()
    );

    $response->send();
} catch(\Exception $e) {
    echo dd($e);
}

Исключение:

ErrorException {#155 ▼
  #message: "Undefined variable: e"
  #code: 0
  #file: "/data/sites/web/umbrellaservicesbe/website/app/Exceptions/Handler.php"
  #line: 62
  #severity: E_NOTICE
  trace: {▼
    /data/sites/web/umbrellaservicesbe/website/app/Exceptions/Handler.php:62 {▼
      › 
      ›     return parent::render($request, $e);
      › }
      arguments: {▼
        $level: 8
        $message: "Undefined variable: e"
        $file: "/data/sites/web/umbrellaservicesbe/website/app/Exceptions/Handler.php"
        $line: 62
        $context: array:2 [ …2]
      }
    }
    /data/sites/web/umbrellaservicesbe/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:326 {▼
      › {
      ›     return $this->app[ExceptionHandler::class]->render($request, $e);
      › }
      arguments: {▼
        $request: Request {#38 …}
        $exception: ErrorException {#160 …}
      }
    }
    /data/sites/web/umbrellaservicesbe/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:120 {▼
      › 
      ›     $response = $this->renderException($request, $e);
      › } catch (Throwable $e) {
      arguments: {▼
        $request: Request {#38 …}
        $e: ErrorException {#160 …}
      }
    }
    /data/sites/web/umbrellaservicesbe/website/public/index.php:54 {▼
      ›     $response = $kernel->handle(
      › \t\t$request = Illuminate\Http\Request::capture()
      › \t);
      arguments: {▼
        $request: Request {#38 …}
      }
    }
  }
}

Как я уже сказал, локально мой маршрут работает просто отлично. Кто-нибудь знает, что может пойти не так?

1 Ответ

0 голосов
/ 31 августа 2018

Я нашел источник моей проблемы. В моем /app/Exceptions/Handler.php по какой-то причине произошел сбой следующей строки:

return parent::render($request, $e);

Потому что рассматриваемый параметр на самом деле был $ исключением. Не уверен, как это случилось.

После исправления этого я получил четкое указание на то, почему мой новый добавленный маршрут не работал: очевидно, что контроллер, который я изменил, не был правильно записан на сервер. После повторной загрузки этого файла все работало нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...