我有以下路线:
// 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时出错。但是当我对用户路由发表评论时,管理员工作正常,但用户面板发现了同样的错误。请帮助先生。谢谢
是这是用户的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 :(得分:0)
问题是Route::controller('/')
正在捕获只有一个段的所有请求。这也意味着/admin
。然后,它会尝试在用户getAdmin()
中找到一个显然不存在的LoginController
方法。
这里你基本上有两个选择。
按照您注册的顺序搜索路线。如果您将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');
您可以指定每条路线,而不是使用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');
});