无法为序列化准备路由 [api/user]。使用闭包
Posted
技术标签:
【中文标题】无法为序列化准备路由 [api/user]。使用闭包【英文标题】:Unable to prepare route [api/user] for serialization. Uses Closure 【发布时间】:2019-05-21 15:32:50 【问题描述】:我正在 Laravel 上编写我的项目。当我优化项目时,我遇到了一个问题:
。
我在 web.php 中查找了任何闭包,但没有找到任何东西
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/','ReviewsController@main')->name('main');
Route::post('/','MailController@verify')->name('verifyPost');
Route::get('/reviews', 'ReviewsController@index')->name('reviews');
Route::post('/reviews','ReviewsController@add')->name('addReview');
Auth::routes();
Route::group(['middleware' => 'admin','prefix' => 'admin'],function ()
Route::get('/', 'HomeController@index')->name('admin');
Route::get('/reviews', 'Admin\ReviewsController@get')->name('admin.reviews');
Route::get('/reviews/accepted/id','Admin\ReviewsController@accept')->where('id','\d+')->name('admin.accepted');
Route::delete('/reviews/delete','Admin\ReviewsController@delete')->name('reviews.delete');
);
【问题讨论】:
laravel Unable to prepare route ... for serialization. Uses Closure的可能重复 【参考方案1】:php路由缓存命令:
php artisan route:cache
如果您的应用程序使用基于控制器的路由。它有助于快速执行。但请记住“基于闭包的路由不能被缓存” 因此,请将您的 Closure 路由转换为控制器类。
For more information
【讨论】:
【参考方案2】:一定要检查“routes/api.php”
【讨论】:
【参考方案3】:在api.php
文件中搜索并评论这条路线你不会得到错误..
Route::middleware('auth:api')->get('/user', function (Request $request)
return $request->user();
);
并且在web.php
文件中route::group
也是closure 并且还评论它们以供测试
Route::group(['middleware' => 'admin','prefix' => 'admin'],function ()
Route::get('/', 'HomeController@index')->name('admin');
Route::get('/reviews', 'Admin\ReviewsController@get')->name('admin.reviews');
Route::get('/reviews/accepted/id','Admin\ReviewsController@accept')->where('id','\d+')->name('admin.accepted');
Route::delete('/reviews/delete','Admin\ReviewsController@delete')->name('reviews.delete');
);
看看closure是什么
【讨论】:
不需要注释掉路由组关闭。这是路线组而不是路线封闭以上是关于无法为序列化准备路由 [api/user]。使用闭包的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 7:无法为序列化准备路由 [api/user]。使用闭包。 (逻辑异常)[重复]
Laravel 5 - 带有消息“无法准备路由”的异常“LogicException”