Я создаю приложение Laravel 5.4 и настроил мои маршруты \ web.php , как показано ниже:
<?php
Route::get('/', 'PublicController@home')->name('home');
Route::get('/about', 'PublicController@about')->name('about');
Route::get('/contact', 'PublicController@contact')->name('contact');
Route::post('/contact', 'PublicController@sendMessage')->name('contact.send');
Route::prefix('admin')->group(function () {
Auth::routes();
Route::middleware(['auth'])->group(function () {
Route::get('/', 'DashboardController@index')->name('dashboard');
Route::get('user', 'UserController@index')->name('user.profile');
Route::post('user/update', 'UserController@update')->name('user.update');
});
});
Чтобы удалить дополнительные отслеживания и отслеживания моего измененного приложения\ Exceptions \ Handler; класс выглядит следующим образом:
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
protected $dontReport = [
\Illuminate\Auth\AuthenticationException::class,
\Illuminate\Auth\Access\AuthorizationException::class,
\Symfony\Component\HttpKernel\Exception\HttpException::class,
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Session\TokenMismatchException::class,
\Illuminate\Validation\ValidationException::class,
];
public function report(Exception $e)
{
if (!config('app.debug')) {
\Log::error('['.$e->getCode().'] "'.$e->getMessage().'" on line '.$e->getTrace()[0]['line'].' of file '.$e->getTrace()[0]['file']);
} else {
parent::report($e);
}
}
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest(route('login'));
}
}
В моем файле config \ app.php я изменил уровень журнала, как показано ниже:
'log_level' => env('APP_LOG_LEVEL', 'error'),
Теперь, когда я получаю доступ к любому общедоступному маршруту, например, mydomain.com/ или mydomain.com/about, перенаправления работают без ошибок внешнего интерфейса, но Laravel записывает в журнал ошибку, указанную ниже ошибки:
[2019-05-21 05:12:32] production.ERROR: [0] "" on line 546 of file
D:\laragon\www\myproject\vendor\laravel\framework\src\Illuminate\Routing\Router.php
И если я получаю доступ к каким-либо защищенным (admin) маршрутам, например, mydomain.com/admin или mydomain.com/admin/user, опять-таки не возникает ошибок в интерфейсе, но я получаю записи журнала, как показано ниже:
[2019-05-21 05:12:47] production.ERROR: [0] "Unauthenticated." on line 294 of file
D:\laragon\www\myproject\vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php
[2019-05-21 05:12:47] production.ERROR: [0] "" on line 546 of file
D:\laragon\www\myproject\vendor\laravel\framework\src\Illuminate\Routing\Router.php
Теперь мои вопросы:
- Почему я получаю «Не прошедший проверку подлинности».запись журнала в производственной среде?
- Почему laravel регистрирует пустую ошибку маршрутизации (production.ERROR: [0] "" в строке 546) при доступе к любым открытым или защищенным маршрутам?
PS Я использую версию PHP 7.2.11