JulianoMartins
JulianoMartins

Reputation: 553

Controller in subfolder with namespace in laravel-4.1

I have the following code:

Route::group(array('namespace' => 'admin'), function() {

    Route::group(array('prefix' => 'admin'), function() {

            Route::get('group', array('as' => 'adminGroup', 'uses' => 'GroupController@index'));

            Route::get('group/index', array('as'   => 'adminGroupIndex',
                    'uses' => 'GroupController@index'));
    });
});

and controller

namespace admin;

class GroupController extends \BaseController {

    protected $layout = 'dashboard';

    public function index()
    {
            $this->layout->content = \View::make('admin/group/index');
    }

}

If I point the URL to:

http://localhost/laravel/public/admin/group/index

works perfectly, but when I point to:

http://localhost/laravel/public/admin/group

does not work. It just redirects to:

http://localhost/laravel/public/user/login

But when I do not use subfolder everything works perfectly!

EDIT: SOLVED

I had started installing laravel administrator and then stopped, because there was not installed an authentication system. So I installed Sentry2 and was configuring management groups. After analyzing a little more settings Laravel Administrator, I realized that it was using the URI 'admin' and also redirected to 'user / login' if I was not authenticated.

Now everything is working perfectly!

Upvotes: 0

Views: 1370

Answers (1)

Antonio Carlos Ribeiro
Antonio Carlos Ribeiro

Reputation: 87719

You probably have another route filtered with "auth" that is catching that /admin/group URL and sending it to login.

I just reproduced your code here and it works fine for me. For the sake of simplicity I just replaced my routes.php file with this code:

<?php

namespace admin;

class GroupController extends \Controller {

    protected $layout = 'dashboard';

    public function index()
    {
            return 'index!';
    }

}

\Route::group(array('namespace' => 'admin'), function() {

    \Route::group(array('prefix' => 'admin'), function() {

            \Route::get('group', array('as' => 'adminGroup', 'uses' => 'GroupController@index'));

            \Route::get('group/index', array('as'   => 'adminGroupIndex',
                    'uses' => 'GroupController@index'));
    });
});

And both

http://development.consultoriodigital.net/admin/group

http://development.consultoriodigital.net/admin/group/index

Worked fine showing a page with

index!

Upvotes: 1

Related Questions