Laravel - Ошибка "Невозможно подготовить маршрут [/] для сериализации. Использует закрытие." - PullRequest
0 голосов
/ 29 июня 2019

Я новичок в Laravel и теперь управляю проектом, который кто-то покинул.

Я пытаюсь добавить функцию в API , что я редактирую:

1) Добавить метод:

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

2) Добавить Маршруты к контроллеру:

myprojectmyproject/routes/api.php

Однако, когда я пытаюсь запустить php artisan route:cache, я получаю ошибку ниже:

Очистить кэш маршрутов! \ п LogicException: Невозможно подготовить маршрут [/] для сериализации. Использует закрытие.

файл моего маршрута, myproject / routs / api.php :

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');
    });

});

если я получил ошибку из-за использует закрытие , почему предыдущий разработчик может заполнить маршрут?

при запуске php artisan route:list я могу увидеть список маршрутов, которые когда-либо делали раньше.

есть идеи?

=== Обновить, добавить маршруты / web.php

Route::get('/', function () {
    return view('welcome');
});
Auth::routes(['register' => false]);
Route::get('/home', 'HomeController@index')->name('home');
Route::get('register/activation/{code}', 'Auth\\RegisterController@activation')->name('register.activation');
Route::group(['prefix' => 'admin', 'middleware' => ['auth']], function() {
    Route::get('/user-apps/list-index', ['as' => 'user-apps.list-index', 'uses' => 'Admin\\UserAppsController@listIndex']);
    Route::get('/user-apps/resend-confirmation', ['as' => 'user-apps.resend-confirmation', 'uses' => 'Admin\\UserAppsController@resendConfirmation']);
    Route::resource('/user-apps', 'Admin\\UserAppsController');
    Route::get('/user/list-index', ['as' => 'user.list-index', 'uses' => 'Admin\\UserController@listIndex']);
    Route::resource('/user', 'Admin\\UserController');
    Route::get('/dzikir-playlist-category/list-index', ['as' => 'dzikir-playlist-category.list-index', 'uses' => 'Admin\\DzikirPlaylistCategoryController@listIndex']);
    Route::resource('/dzikir-playlist-category', 'Admin\\DzikirPlaylistCategoryController');

    Route::get('/dzikir-playlist/list-index', ['as' => 'dzikir-playlist.list-index', 'uses' => 'Admin\\DzikirPlaylistController@listIndex']);
    Route::resource('/dzikir-playlist', 'Admin\\DzikirPlaylistController');

    Route::get('/dzikir-playlist-homepage/list-index', ['as' => 'dzikir-playlist-homepage.list-index', 'uses' => 'Admin\\DzikirPlaylistHomepageController@listIndex']);
    Route::resource('/dzikir-playlist-homepage', 'Admin\\DzikirPlaylistHomepageController');
    Route::get('/dzikir-playlist-my-zikir/list-index', ['as' => 'dzikir-playlist-my-zikir.list-index', 'uses' => 'Admin\\DzikirPlaylistMyZikirController@listIndex']);
    Route::resource('/dzikir-playlist-my-zikir', 'Admin\\DzikirPlaylistMyZikirController');
    Route::get('/greeting-chat/list-index', ['as' => 'greeting-chat.list-index', 'uses' => 'Admin\\GreetingChatController@listIndex']);
    Route::resource('/greeting-chat', 'Admin\\GreetingChatController');
    Route::get('/foundation-donate/list-index', ['as' => 'foundation-donate.list-index', 'uses' => 'Admin\\FoundationDonateController@listIndex']);
    Route::resource('/foundation-donate', 'Admin\\FoundationDonateController');
    Route::get('/asmaul-husna/list-index', ['as' => 'asmaul-husna.list-index', 'uses' => 'Admin\\AsmaulHusnaController@listIndex']);
    Route::resource('/asmaul-husna', 'Admin\\AsmaulHusnaController');
    Route::get('/guidance/list-index', ['as' => 'guidance.list-index', 'uses' => 'Admin\\GuidanceController@listIndex']);
    Route::resource('/guidance', 'Admin\\GuidanceController');
    Route::get('/content-category/list-index', ['as' => 'content-category.list-index', 'uses' => 'Admin\\ContentCategoryController@listIndex']);
    Route::resource('/content-category', 'Admin\\ContentCategoryController');
    Route::get('/duas/list-index', ['as' => 'duas.list-index', 'uses' => 'Admin\\DuasController@listIndex']);
    Route::resource('/duas', 'Admin\\DuasController');
    Route::get('/zakat/list-index', ['as' => 'zakat.list-index', 'uses' => 'Admin\\ZakatController@listIndex']);
    Route::resource('/zakat', 'Admin\\ZakatController');
    Route::get('/quote/list-index', ['as' => 'quote.list-index', 'uses' => 'Admin\\QuoteController@listIndex']);
    Route::resource('/quote', 'Admin\\QuoteController');
    Route::get('/playlist-song-category/list-index', ['as' => 'playlist-song-category.list-index', 'uses' => 'Admin\\PlaylistSongCategoryController@listIndex']);
    Route::resource('/playlist-song-category', 'Admin\\PlaylistSongCategoryController');
    Route::get('/playlist-song/list-index', ['as' => 'playlist-song.list-index', 'uses' => 'Admin\\PlaylistSongController@listIndex']);
    Route::resource('/playlist-song', 'Admin\\PlaylistSongController');
    Route::get('/album/list-index', ['as' => 'album.list-index', 'uses' => 'Admin\\AlbumController@listIndex']);
    Route::resource('/album', 'Admin\\AlbumController');
    Route::get('/artist/list-index', ['as' => 'artist.list-index', 'uses' => 'Admin\\ArtistController@listIndex']);
    Route::resource('/artist', 'Admin\\ArtistController');
    Route::get('/article/list-index', ['as' => 'article.list-index', 'uses' => 'Admin\\ArticleController@listIndex']);
    Route::resource('/article', 'Admin\\ArticleController');
});

1 Ответ

1 голос
/ 29 июня 2019

Если вы хотите использовать кэширование маршрутов , вы не можете использовать закрытие для регистрации маршрутов в любом файле.

Поскольку у вас все еще есть маршрут по умолчанию из новой установки Laravel в вашем файле routes/web.php, вы получаете эту ошибку, потому что, когда вы do php artisan route:cache, Laravel под капотом сортирует файлы маршрутов и объединяет их в один файл, когда он поиск будет быстрее.

Чтобы решить эту проблему, вы можете просто удалить маршрут , если он не нужен, или переместить его на контроллер , как вы это сделали для всех других маршрутов. Ошибка должна исчезнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...