Путаница путаницы на двух админах в laravel 4

0

У меня есть следующие маршруты:

// For user
  Route::controller('/', 'LoginController');


 //For admin
  Route::group(array('prefix' => 'admin'), function() {
        Route::get('/', 'admin\LoginController@index');
        Route::get('/dashboard', 'admin\LoginController@show');
        Route::get('/Logout','admin\LoginController@logout');
        Route::resource('/setting','admin\SettingController');  
    });

У меня есть панель пользователя без префикса. В logincontroller содержатся коды авторизации. Я нашел "Метод контроллера не найден". ошибка, когда я открываю admin.but, когда я комментирую маршрут пользователя, тогда администратор работает нормально, но пользовательская панель обнаружила ту же ошибку. help help sir..thanks

Да Здесь LoginController пользователя

<?php
class LoginController extends BaseController {

    public function getIndex()
    {
        if(Auth::check())
        {
            return Redirect::to('/user/home');
        }
        return View::make('login.index');
    }
    public function postIndex()
    {
        $username = Input::get('username');
        $password = Input::get('password');
        if (Auth::attempt(['username' => $username, 'password' => $password]))
        {
            return Redirect::intended('/user/home');
        }
        return Redirect::back()
            ->withInput()
            ->withErrors('Sorry,Username or password is incorrect');
    }
    public function getLogin()
    {
        return Redirect::to('/');
    }
    public function getLogout()
    {
        Auth::logout();

        return Redirect::to('/');
    } 
}

Контроллер входа администратора

<?php
namespace admin;
class LoginController extends \BaseController {
public function showLogin() {
             return \View::make('admin.login');
   }
     public function index()
     {
          return \View::make('admin.index');
     }
     public function store()
     {
               $username = \Input::get('username');
             $password = md5(\Input::get('password'));
                   if ($mm=\DB::select('select * from admin where uname = ? and password = ?', array($username, $password)))
                   {
                            \Session::put('admin', $mm);
                      return \Redirect::intended('/admin/dashboard');
               } 
               else
               {
                \Session::flush('admin');
                   return \Redirect::back()
                    ->withInput()
                    ->withErrors('Sorry,Unauthorized admin please try again');
              }
    }
      public function postIndex()
    {
         echo 'Demo of  post index';exit;
      }
    public function show()
    {
       $tt=\Session::get('admin');
       return \View::make('admin.dashboard');
    }
    public function Logout()
    {

       \Session::flush('admin');
        return \Redirect::to('/admin');
    }
}
  • 0
    Можем ли мы увидеть ваш LoginController ?
  • 0
    Да, у меня есть место в вопросах, пожалуйста, проверьте
Показать ещё 4 комментария
Теги:
laravel-4

1 ответ

0
Лучший ответ

Проблема в том, что Route::controller('/') захватывает все запросы, у которых есть только один сегмент. это означает /admin. Затем он пытается найти метод getAdmin() в пользовательском LoginController который, очевидно, не существует.

У вас в основном есть два варианта.

1. Изменить порядок маршрута

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

Route::group(array('prefix' => 'admin'), function() {
    Route::get('/', 'admin\LoginController@index');
    Route::get('/dashboard', 'admin\LoginController@show');
    Route::get('/Logout','admin\LoginController@logout');
    Route::resource('/setting','admin\SettingController');  
});

Route::controller('/', 'LoginController');

2. Сделать явные маршруты

Вместо использования Route::controller('/') вы можете указать каждый маршрут:

Route::get('/', 'LoginController@getIndex');
Route::get('login', 'LoginController@getLogin');
// etc...

Route::group(array('prefix' => 'admin'), function() {
    Route::get('/', 'admin\LoginController@index');
    Route::get('/dashboard', 'admin\LoginController@show');
    Route::get('/Logout','admin\LoginController@logout');
    Route::resource('/setting','admin\SettingController');  
});
  • 0
    Спасибо, сэр. Проблема решена еще раз спасибо
  • 0
    Пожалуйста :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню