LogicException не удается подготовить маршрут [api / user] для сериализации. Использует закрытие

#laravel #routes #controls

#laravel #маршруты #элементы управления

Вопрос:

Я получаю эту ошибку при оптимизации PHP artisan.

Ошибка: введите описание изображения здесь

Маршрут API:

 Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
  

Это начнется после того, как я удалю в своем HomeController это:

 public function __construct()
{
    $this->middleware('auth');
}
  

Я не хочу, чтобы домашний контроллер был доступен только зарегистрированным пользователям; Я хочу, чтобы все могли видеть!

Спасибо за помощь!

Ответ №1:

php artisan optimize также делает php artisan route:cache . И вы не можете кэшировать свои маршруты, если они используют Closure.

Это один из них.

 Route::middleware('auth:api')->get('/user', function (Request $request) {
       return $request->user();
});
  

Что вы можете сделать, так это это. Измените его, чтобы он указывал на controller класс.

 Route::middleware('auth:api')->get('/user', 'UserController@show');
  

И создайте другой контроллер, который является UserController . И у вас может быть метод, подобный этому.

 public function show(Request $request)
{
    return $request->user();
}
  

Это должно сработать для вас.