Hello, folks!
I'm trying to use php artisan route:cache on my shared hosting server, but it returns
[LogicException]
Unable to prepare route [api/user] for serialization. Uses Closure.
I commented out the only route closures I'm using, but I still get the same error. Here my routes/web.php file. I'm nothing using route closures anymore! Am I wrong?
Should I run some command before trying to php artisan route:cache again?
<?php
// Login Routes:
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::get('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes:
Route::get('registrar', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('registrar', 'Auth\RegisterController@register');
// Password Reset Routes:
Route::get('senha/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('senha/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('senha/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('senha/reset', 'Auth\ResetPasswordController@reset');
//Social Login Routes:
Route::get('auth/{provider}', 'Auth\SocialAuthController@redirectToProvider')->name('auth.facebook');
Route::get('auth/{provider}/callback', 'Auth\SocialAuthController@handleProviderCallback');
Route::get('/', 'SubjectsController@index')->name('home');
/* Matérias */
Route::group(['prefix' => 'materias'], function (){
Route::get('/', 'SubjectsController@index')->name('index.subject');
Route::get('criar', 'SubjectsController@create')->name('create.subject');
Route::post('criar', 'SubjectsController@store');
Route::get('{subject}', 'SubjectsController@show')->name('show.subject');
Route::get('{subject}/editar', 'SubjectsController@edit')->name('edit.subject');
Route::put('{subject}/editar', 'SubjectsController@update');
Route::delete('{subject}', 'SubjectsController@destroy')->name('destroy.subject');
Route::put('{subject}/status', 'SubjectsController@status')->name('status.subject');
/* Tópicos */
Route::group(['prefix' => '{subject}'], function (){
Route::get('criar', 'TopicsController@create')->name('create.topic');
Route::post('criar', 'TopicsController@store')->name('post.topic');
Route::get('{topic}', 'TopicsController@show')->name('show.topic');
Route::get('{topic}/editar', 'TopicsController@edit')->name('edit.topic');
Route::put('{topic}/editar', 'TopicsController@update')->name('update.topic');
Route::delete('{topic}', 'TopicsController@destroy')->name('destroy.topic');
Route::put('{topic}/status', 'TopicsController@status')->name('status.topic');
/* Aulas */
Route::group(['prefix' => '{topic}'], function (){
Route::get('create', 'LecturesController@create')->name('create.lecture');
Route::post('/criar', 'LecturesController@store')->name('post.lecture');
Route::get('{lecture}', 'LecturesController@show')->name('show.lecture');
Route::get('{lecture}/editar', 'LecturesController@edit')->name('edit.lecture');
Route::put('{lecture}/editar', 'LecturesController@update')->name('update.lecture');
Route::delete('{lecture}', 'LecturesController@destroy')->name('destroy.lecture');
Route::put('{lecture}/status', 'LecturesController@status')->name('status.lecture');
/* Exercicios */
Route::group(['prefix' => '{lecture}/exercicios'], function (){
Route::get('criar', 'ExercisesController@create')->name('create.exercise');
Route::post('criar', 'ExercisesController@store')->name('post.exercise');
Route::get('{exercise}', 'ExercisesController@show')->name('show.exercise');
Route::get('{exercise}/editar', 'ExercisesController@edit')->name('edit.exercise');
Route::put('{exercise}/editar', 'ExercisesController@update')->name('update.exercise');
Route::delete('{exercise}', 'ExercisesController@destroy')->name('destroy.exercise');
/* Alternativas de Exercícios */
Route::group(['prefix' => '{exercise}/alternativas'], function (){
Route::get('criar', 'ExerciseAlternativesController@create')->name('create.alternative');
Route::post('criar', 'ExerciseAlternativesController@store')->name('post.alternative');
Route::get('{alternative}/editar', 'xExerciseAlternativesController@edit')->name('edit.alternative');
Route::put('{alternative}/editar', 'ExerciseAlternativesController@update')->name('update.alternative');
Route::delete('{alternative}', 'ExerciseAlternativesController@destroy')->name('destroy.alternative');
});
/* Vídeo Solução */
Route::group(['prefix' => '{exercise}/videosolucao'], function (){
Route::get('criar', 'VideoSolutionsController@create')->name('create.videosolution');
Route::post('criar', 'VideoSolutionsController@store')->name('post.videosolution');
Route::get('{videosolution}/editar', 'VideoSolutionsController@edit')->name('edit.videosolution');
Route::put('{videosolution}/editar', 'VideoSolutionsController@update')->name('update.videosolution');
Route::delete('{videosolution}', 'VideoSolutionsController@destroy')->name('destroy.videosolution');
});
});
/* VideoAulas */
Route::group(['prefix' => '{lecture}/videos'], function (){
Route::get('criar', 'VideoLecturesController@create')->name('create.videolecture');
Route::post('criar', 'VideoLecturesController@store')->name('post.videolecture');
Route::get('{videolecture}', 'VideoLecturesController@show')->name('show.videolecture');
Route::get('{videolecture}/editar', 'VideoLecturesController@edit')->name('edit.videolecture');
Route::put('{videolecture}/editar', 'VideoLecturesController@update')->name('update.videolecture');
Route::delete('{videolecture}', 'VideoLecturesController@destroy')->name('destroy.videolecture');
Route::put('{videolecture}/status', 'VideoLecturesController@status')->name('status.videolecture');
Route::get('{videolecture}/adicionar-exercicio/{exercise}', 'VideoLecturesController@addExercise')->name('addExercise.videolecture');
Route::get('{videolecture}/remover-exercicio/{exercise}', 'VideoLecturesController@removeExercise')->name('removeExercise.videolecture');
});
});
});
});
//Route::get('dev', function () {
// return view('admin.dev');
//})->middleware('role:admin');
//Rotas de Revisão
Route::get('revisar/exercicios/{subject}', 'RevisionsController@index')->name('index.revision');
Route::get('revisar/exercicios/alternativas', 'RevisionsController@alternatives')->name('alternatives.revision');
Route::put('revisar/exercicios/{exercise}', 'RevisionsController@updatelecture')->name('postlecture.revision');
Route::get('revisar/meus-exercicios', 'RevisionsController@indexByMe')->name('indexbyme.revision');
//Rotas de Admin
Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function (){
Route::group(['prefix' => '/usuariosadm'], function (){
Route::get('', 'GrantRolesController@index')->name('index.usersadm');
Route::get('criar', 'GrantRolesController@create')->name('create.usersadm');
Route::post('criar', 'GrantRolesController@store')->name('post.usersadm');
Route::delete('{user}', 'GrantRolesController@destroy')->name('destroy.usersadm');
});
Route::group(['prefix' => 'roles'], function (){
Route::get('/', 'RolesController@index')->name('index.role');
Route::get('criar', 'RolesController@create')->name('create.role');
Route::post('criar', 'RolesController@store');
Route::get('{role}', 'RolesController@show')->name('show.role');
Route::get('{role}/editar', 'RolesController@edit')->name('edit.role');
Route::put('{role}/editar', 'RolesController@update');
Route::delete('{role}', 'RolesController@destroy')->name('destroy.role');
Route::put('{role}/status', 'RolesController@status')->name('status.role');
Route::get('{role}/adicionar-permissao/{permission}', 'RolesController@addPermission')->name('addPermission.role');
Route::get('{role}/remover-permissao/{permission}', 'RolesController@removePermission')->name('removePermission.role');
});
Route::group(['prefix' => 'permissions'], function (){
Route::get('/', 'PermissionsController@index')->name('index.permission');
Route::get('criar', 'PermissionsController@create')->name('create.permission');
Route::post('criar', 'PermissionsController@store');
Route::get('{permission}', 'PermissionsController@show')->name('show.permission');
Route::get('{permission}/editar', 'PermissionsController@edit')->name('edit.permission');
Route::put('{permission}/editar', 'PermissionsController@update');
Route::delete('{permission}', 'PermissionsController@destroy')->name('destroy.permission');
Route::put('{permission}/status', 'PermissionsController@status')->name('status.permission');
});
Route::group(['prefix' => 'youtube-channels'], function (){
Route::get('/', 'YoutubeChannelsController@index')->name('index.youtubechannel');
Route::get('criar', 'YoutubeChannelsController@create')->name('create.youtubechannel');
Route::post('criar', 'YoutubeChannelsController@store');
Route::get('{channel}', 'YoutubeChannelsController@show')->name('show.youtubechannel');
// Route::get('{channel}/editar', 'YoutubeChannelsController@edit')->name('edit.youtubechannel');
// Route::put('{channel}/editar', 'YoutubeChannelsController@update');
Route::delete('{channel}', 'YoutubeChannelsController@destroy')->name('destroy.youtubechannel');
});
Route::group(['prefix' => 'sources'], function (){
Route::get('/', 'ExerciseSourcesController@index')->name('index.source');
Route::get('criar', 'ExerciseSourcesController@create')->name('create.source');
Route::post('criar', 'ExerciseSourcesController@store');
Route::get('{source}', 'ExerciseSourcesController@show')->name('show.source');
Route::get('{source}/editar', 'ExerciseSourcesController@edit')->name('edit.source');
Route::put('{source}/editar', 'ExerciseSourcesController@update');
Route::delete('{source}', 'ExerciseSourcesController@destroy')->name('destroy.source');
});
Route::group(['prefix' => 'configuracoes'], function (){
Route::get('/', 'SettingsController@index')->name('index.settings');
Route::get('criar', 'SettingsController@create')->name('create.settings');
Route::post('criar', 'SettingsController@store');
// Route::get('{source}', 'SettingsController@show')->name('show.settings');
Route::get('editar', 'SettingsController@edit')->name('edit.settings');
Route::put('editar', 'SettingsController@update');
Route::delete('{source}', 'SettingsController@destroy')->name('destroy.settings');
});
});
//Rotas do banco de exercícios
Route::group(['prefix' => 'exercicios'], function (){
Route::get('{subject}', 'ExercisesBankController@lectures')->name('showlectures.exercisesbank');
// Route::get('criar', 'SubjectsController@create')->name('create.subject');
// Route::post('criar', 'SubjectsController@store');
// Route::get('{subject}', 'SubjectsController@show')->name('show.subject');
// Route::get('{subject}/editar', 'SubjectsController@edit')->name('edit.subject');
// Route::put('{subject}/editar', 'SubjectsController@update');
// Route::delete('{subject}', 'SubjectsController@destroy')->name('destroy.subject');
// Route::put('{subject}/status', 'SubjectsController@status')->name('status.subject');
});
//Rotas de perfil
Route::group(['prefix' => 'perfil', 'middleware' => 'auth'], function () {
Route::get('', 'UserProfilesController@show')->name('show.userprofile');
Route::get('editar', 'UserProfilesController@edit')->name('edit.userprofile');
Route::put('editar', 'UserProfilesController@update');
});
//Route::get('teste', function () {
// return view('app.index');
//});