问题是phpartisanroute:cacheLaravel7

The problem is php artisan route:cache Laravel7

当我这样做时 php artisan route:cache 对我来说,这个错误出现了。! 我该如何解决这个问题?

  LogicException 

  Unable to prepare route [api/user] for serialization. Uses Closure.

  at C:\wamp64\www\web\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1140
    1136|      */
    1137|     public function prepareForSerialization()
    1138|     {
    1139|         if ($this->action['uses'] instanceof Closure) {
  > 1140|             throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure.");
    1141|         }
    1142| 
    1143|         $this->compileRoute();
    1144| 

  1   C:\wamp64\www\web\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62
      Illuminate\Routing\Route::prepareForSerialization()

  2   C:\wamp64\www\web\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:33
      Illuminate\Foundation\Console\RouteCacheCommand::handle()

路线:列表:

+--------+----------+-----------------------------+---------------------+------------------------------------------------------------------------+------------------------------+
| Domain | Method   | URI                         | Name                | Action                                                                 | Middleware                   |
+--------+----------+-----------------------------+---------------------+------------------------------------------------------------------------+------------------------------+
|        | GET|HEAD | /                           | index               | Closure                                                                | web                          |
|        | GET|HEAD | admin                       | admin.index         | App\Http\Controllers\admin\AdminController@index                       | web,auth,verified            |
|        | GET|HEAD | api/user                    |                     | Closure                                                                | api,auth:api                 |
|        | GET|HEAD | auth/google                 | auth.google         | App\Http\Controllers\Auth\GoogleAuthController@redirect                | web                          |
|        | GET|HEAD | auth/google/callback        |                     | App\Http\Controllers\Auth\GoogleAuthController@callback                | web                          |
|        | POST     | email/resend                | verification.resend | App\Http\Controllers\Auth\VerificationController@resend                | web,auth,throttle:6,1        |
|        | GET|HEAD | email/verify                | verification.notice | App\Http\Controllers\Auth\VerificationController@show                  | web,auth                     |
|        | GET|HEAD | email/verify/{id}/{hash}    | verification.verify | App\Http\Controllers\Auth\VerificationController@verify                | web,auth,signed,throttle:6,1 |
|        | POST     | login                       |                     | App\Http\Controllers\Auth\LoginController@login                        | web,guest                    |
|        | GET|HEAD | login                       | login               | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest                    |
|        | POST     | logout                      | logout              | App\Http\Controllers\Auth\LoginController@logout                       | web                          |
|        | GET|HEAD | panel                       | user.index          | App\Http\Controllers\UserController@index                              | web,auth,verified            |
|        | GET|HEAD | panel/setting               | user.profile_edit   | App\Http\Controllers\UserController@edit                               | web,auth,verified            |
|        | POST     | panel/setting/update/{user} | user.profile_update | App\Http\Controllers\UserController@update                             | web,auth,verified            |
|        | GET|HEAD | password/confirm            | password.confirm    | App\Http\Controllers\Auth\ConfirmPasswordController@showConfirmForm    | web,auth                     |
|        | POST     | password/confirm            |                     | App\Http\Controllers\Auth\ConfirmPasswordController@confirm            | web,auth                     |
|        | POST     | password/email              | password.email      | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web                          |
|        | POST     | password/reset              | password.update     | App\Http\Controllers\Auth\ResetPasswordController@reset                | web                          |
|        | GET|HEAD | password/reset              | password.request    | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web                          |
|        | GET|HEAD | password/reset/{token}      | password.reset      | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web                          |
|        | POST     | register                    |                     | App\Http\Controllers\Auth\RegisterController@register                  | web,guest                    |
|        | GET|HEAD | register                    | register            | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest                    |
+--------+----------+-----------------------------+---------------------+------------------------------------------------------------------------+------------------------------+

出现这个问题是因为你的一些路由定义在closures or anonymous functions. Usually the default route pointing to / in routes/web.php and the /user route in routes/api.php 是由闭包定义的。

删除它们或将它们移动到控制器,您就可以开始了。

您可以使用命令 php artisan route:list 来识别任何使用闭包的路由。它将显示 Closure.

而不是动作或 class 名称