Laravel-错误“无法准备路由[/]进行序列化。使用闭包。”

时间:2019-06-29 11:51:54

标签: php laravel

我是Laravel的新手,现在我管理某个人留下的项目。

我尝试向我编辑的 API 添加功能:

1)添加方法:

import { pkgAThing } from './packages/package-a`;

2)将路线添加到控制者:

myproject/app/Http/Controllers/Api/ArticleController.php

但是,当我尝试运行myprojectmyproject/routes/api.php时,我遇到了以下错误:

  
    

路由缓存已清除! \ n     LogicException:无法准备路由[/]进行序列化。使用闭包。

  

我的路由文件 myproject / routes / api.php

php artisan route:cache

如果我由于Uses Closure而出错,为什么以前的开发人员可以填充路由?

通过运行Route::group (['prefix' => 'v1', 'middleware' => 'ValidateHeaderSignature'], function() { Route::group(['prefix' => 'auth'], function() { Route::post('/login', 'Api\AuthController@login'); Route::post('/register', 'Api\AuthController@register'); Route::post('/login-social-media', 'Api\AuthController@loginSocialMedia'); Route::post('/forgot-password', 'Api\AuthController@forgotPassword'); Route::group(['middleware' => 'jwt.auth'], function() { Route::patch('/change-password', 'Api\AuthController@changePassword'); Route::post('/logout', 'Api\AuthController@logout'); }); }); Route::group(['prefix' => 'foundation-donate'], function() { Route::get('/', 'Api\FoundationDonateController@index'); }); Route::group(['prefix' => 'greeting-chat'], function() { Route::get('/', 'Api\GreetingChatController@index'); }); Route::group(['prefix' => 'prayer-time'], function () { Route::get('/', 'Api\PrayerTimeController@index'); Route::get('/montly', 'Api\PrayerTimeController@getMontlyPrayerTimes'); }); Route::group(['prefix' => 'asmaul-husna'], function () { Route::get('/', 'Api\AsmaulHusnaController@index'); }); Route::group(['prefix' => 'guidance'], function () { Route::get('/zikir', 'Api\GuidanceController@zikirGuidances'); Route::get('/prayer', 'Api\GuidanceController@prayerGuidances'); }); Route::group(['prefix' => 'duas'], function () { Route::get('/', 'Api\DuasController@index'); Route::get('/index', 'Api\DuasController@index'); Route::get('/all', 'Api\DuasController@allPrayers'); Route::get('/category/{category}', 'Api\DuasController@category'); Route::get('/show/{id}', 'Api\DuasController@show'); }); Route::group(['prefix' => 'zakat'], function () { Route::get('/', 'Api\ZakatController@index'); Route::get('/index', 'Api\ZakatController@index'); Route::get('/all', 'Api\ZakatController@allPrayers'); Route::get('/category/{category}', 'Api\ZakatController@category'); Route::get('/show/{id}', 'Api\ZakatController@show'); }); Route::group(['prefix' => 'playlist'], function () { Route::get('/zikir', 'Api\PlaylistSongController@playlistZikir'); Route::get('/shalawat', 'Api\PlaylistSongController@playlistShalawat'); Route::get('/duas', 'Api\PlaylistSongController@playlistDuas'); Route::get('/murottal', 'Api\PlaylistSongController@playlistMurottal'); Route::get('/songs', 'Api\PlaylistSongController@playlistSongs'); }); Route::group(['prefix' => 'dzikir'], function() { Route::get('/primary', 'Api\DzikirController@primaryDzikir'); Route::get('/my-dzikir', 'Api\DzikirController@myDzikir'); Route::get('/categories', 'Api\DzikirController@dzikirCategories'); Route::group(['middleware' => 'jwt.auth'], function() { Route::get('/point-total', 'Api\DzikirController@pointTotal'); Route::get('/histories', 'Api\DzikirController@histories'); Route::get('/total-dzikir-history', 'Api\DzikirController@totalDzikirHistory'); Route::post('/post-dzikir', 'Api\DzikirController@postDzikir'); }); }); Route::group(['prefix' => 'sadaqah'], function() { Route::group(['middleware' => 'jwt.auth'], function() { Route::get('/histories', 'Api\DzikirController@sadaqahHistories'); }); }); Route::group(['prefix' => 'article'], function() { Route::get('/', 'Api\ArticleController@index'); Route::get('/daily-reflection', 'Api\ArticleController@getDailyReflection'); Route::get('/get-random', 'Api\ArticleController@getRandom'); }); Route::group(['prefix' => 'notification'], function() { Route::get('/quote', 'Api\NotificationController@prayerQuotes'); }); Route::group(['prefix' => 'user', 'middleware' => 'jwt.auth'], function() { Route::get('/show', 'Api\UserController@show'); Route::patch('/update-profile', 'Api\UserController@update'); }); Route::group(['prefix' => 'master'], function() { Route::get('/location', 'Api\MasterController@location'); }); }); ,我可以看到以前进行过的路线列表。

有什么主意吗?

===更新,添加路由/web.php

php artisan route:list

2 个答案:

答案 0 :(得分:1)

当您要使用路由缓存时,您不能使用闭包在任何文件中注册路由。

由于您的routes/web.php文件中仍具有全新Laravel安装的默认路由,因此会出现此错误,因为当您do php artisan route:cache时,Laravel会细化路由文件并将它们组合为一个单身,因为他的查找会更快。

要解决此问题,只需删除路由(如果不需要),或者像其他所有路由一样将其移动到控制器。 错误应该消失了。

答案 1 :(得分:1)

只需删除任何带有回调函数的路由,如默认路由。

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

编辑

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