In my web.php has
Route::post('/user/logout', function () {
Auth::logout();
return redirect()->route('login');
})->name('user-logout');
Auth::routes();
Route::group(
[
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath']
], function(){
Route::get('/','SiteController#index')->name('site.index');
Route::group(['prefix' => 'admin'], function () {
Route::get('/', 'AdminController#index')->name('admin.index');
Route::prefix('users')->group(function () {
Route::get('/', 'AdminControllers\UserController#index')->name('admin.users.index');
Route::get('/create', 'AdminControllers\UserController#create')->name('admin.users.create');
Route::post('/store', 'AdminControllers\UserController#store')->name('admin.users.store');
Route::get('/show/{id}', 'AdminControllers\UserController#show')->name('admin.users.show');
Route::get('/edit/{id}', 'AdminControllers\UserController#edit')->name('admin.users.edit');
Route::put('/update/{id}', 'AdminControllers\UserController#update')->name('admin.users.update');
Route::delete('/destroy/{id}', 'AdminControllers\UserController#destroy')->name('admin.users.destroy');
});
});
});
when I try to login with this url
http://dev.practice.uz/
or with this url
http://dev.practice.uz/admin
I go to the same login blade and the same route, I should do separately route and login.blade , Can you give Advise me??
I'm new to Laravel and now i manage project that was left by someone.
i try to add a function to API, what i edit :
1) Add a Method :
myproject/app/Http/Controllers/Api/ArticleController.php
2) Add Routes to controler :
myprojectmyproject/routes/api.php
However, when i try to run php artisan route:cache i got below error :
Route cache cleared! \n
LogicException : Unable to prepare route [/] for serialization. Uses Closure.
my route file, myproject/routes/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');
});
});
if i got error because of Uses Closure, why previous developer can populate route?
by run php artisan route:list i can see list of route that have ever made before.
any idea ?
===Update, Add routes/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');
});
When you want to use route caching, you can't use closure to register routes in any file.
As you still have the default route from the fresh Laravel installation in your routes/web.php file, you get this error because when you do php artisan route:cache, Laravel under the hood selializes the routes files and combine them in a single one as he lookup would be quicker.
To solve the issue, you can simply remove the route if that is unneeded or move it to a controller like you did for all the others routes.
The error should be gone then.
Simply delete any route with a callback function like the default routes.
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
edit in
Route::middleware('auth:api')->get('/user', 'SomeController#someMethod');
What is the best and correct way to write the following routing:
Route::group(['middleware' => ['web']],function (){
Route::prefix('user')->group(function () {
//this address shows the login page
Route::any('login', 'User#login_page');
//others address that control the login action
Route::prefix('login')->group(function (){
Route::get('google', 'User#check_user_login_with_google');
Route::post('form', 'User#check_user_login_with_form');
Route::get('google-url', 'User#redirect_to_google_url');
});
//these address control the registration actions
Route::any('register','User#register');
Route::any('register/check','User#check_user_registration');
});
});
You can do it all in one shot:
Route::group(['prefix' => 'user', 'as' => 'user.', 'middleware' => ['web']], function() {
Route::any('login', 'User#login_page');
...
})
You can use all these in a separate associated array and assign this array to the group here is how to do that .
Route::group(['prefix' => 'user', 'as' => 'user.', 'middleware' => ['web']], function() {
Route::any('login', 'User#login_page');
...
})
Hope this may help you
I want to add a authentication when guest try to access the home page. I get the error when I try to access the home page.
Laravel Version : Laravel 5
The routes.php error version:
Route::get('auth/login', 'Auth\AuthController#getLogin');
Route::post('auth/login', 'Auth\AuthController#postLogin');
Route::get('auth/logout', 'Auth\AuthController#getLogout');
Route::get('auth/register', 'Auth\AuthController#getRegister');
Route::post('auth/register', 'Auth\AuthController#postRegister');
Route::get('/', ['middleware' => 'auth', function()
{
Route::get('/', 'HomeController#index');
Route::get('pages/{id}', 'PagesController#show');
Route::post('comment/store', 'CommentsController#store');
}]);
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'auth'], function()
{
Route::get('/', 'AdminHomeController#index');
Route::resource('pages', 'PagesController');
Route::resource('comments', 'CommentsController');
});
Error Log
at HandleExceptions->handleError('8', 'Undefined offset: 1', 'G:\wamp\www\Laravel5\vendor\compiled.php', '7377', array('request' => object(Request), 'this' => object(Route))) in compiled.php line 7377
The correct origional version
Route::get('/', 'HomeController#index');
Route::get('pages/{id}', 'PagesController#show');
Route::post('comment/store', 'CommentsController#store');
Route::get('auth/login', 'Auth\AuthController#getLogin');
Route::post('auth/login', 'Auth\AuthController#postLogin');
Route::get('auth/logout', 'Auth\AuthController#getLogout');
Route::get('auth/register', 'Auth\AuthController#getRegister');
Route::post('auth/register', 'Auth\AuthController#postRegister');
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'auth'], function()
{
Route::get('/', 'AdminHomeController#index');
Route::resource('pages', 'PagesController');
Route::resource('comments', 'CommentsController');
});
Update:
I know solve the problem but don't know why? You can see the last four lines I declared a route group with authentication. And when I test that part, I had logged in. Now I log out the /admin prefix and I can see the login page when I try to access the root url.
So my idea is write a guestAuth middleware for users and a adminAuth middleware to administrators. Do you have better ideas?
Try with -
Route::group(['middleware' => 'auth'], function()
{
Route::get('/', 'HomeController#index');
Route::get('pages/{id}', 'PagesController#show');
Route::post('comment/store', 'CommentsController#store');
});
Check here
Is it this line of code?
Route::get('/', ['middleware' => 'auth', function()
{
Route::get('/', 'HomeController#index');
Route::get('pages/{id}', 'PagesController#show');
Route::post('comment/store', 'CommentsController#store');
}]);
Should it be?
Route::get('/', ['middleware' => 'auth'], function()
{
Route::get('/', 'HomeController#index');
Route::get('pages/{id}', 'PagesController#show');
Route::post('comment/store', 'CommentsController#store');
});
I want the route to bypass authentication filter after successfully login. So I use Redirect::intended. But it makes problem. Here is my code
In LoginController#doLogin
if (Auth::attempt($credentials)) {
return Redirect::intended("home.index");
}
In Routes
Route::group(array('before' => 'auth'), function() {
Route::resource('home', 'HomeController');
Route::get('/', 'HomeController');
});
My routes
If I put the the home resource route without the auth filter, then it will work. (Not redirect to login route.).That code is given below
Route::resource('home', 'HomeController');
Route::group(array('before' => 'auth'), function() {
Route::get('/', 'HomeController');
}); /* No Problem with this code */
But I want to work with auth filter.I'm using laravel 4.
Please help me...
Currently I use this:
in filter.php
Route::filter('sentry', function() {
if (!Sentry::check())
{
return Redirect::route('authLogin');
}
});
so in route.php
Route::get('auth/login/', array('as' => 'authLogin', 'uses' => 'AuthController#login'));
Route::post('auth/login/', array('as' => 'authLogin', 'uses' => 'AuthController#login'));
Route::group(array('before' => 'sentry'), function() {
Route::get('user/', array('as' => 'user', 'uses' => 'UserController#index'));
Route::get('user/index', array('as' => 'userIndex', 'uses' => 'UserController#index'));
});
I preffer named routes.