1

我已经在本地服务器上安装了 laravel 7。当我运行php artisan route:cache命令时,laravel 返回错误:

逻辑异常

无法为序列化准备路由 [api/user]。使用闭包。

在此处输入图像描述

我该如何解决这个问题?

我尝试运行工匠命令:

php artisan config:cache
php artisan config:clear
php artisan cache:clear
composer dumpautoload

这是内容routes/api.php

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

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

1 回答 1

5

如果他们使用闭包,你不能缓存你的路线。

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

官方文档(这对 Laravel 7 来说并不新鲜)https://laravel.com/docs/5.8/deployment#optimization

为了route:cache工作,您可能希望使用闭包替换所有请求以使用控制器方法。

上面的路线将是这样的:

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

控制器方法UserController@show如下:

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

希望这可以帮助!:)

于 2020-03-07T06:10:42.847 回答