找不到控制器方法 - laravel 4
我有这个消息抱怨试图运行任何控制器
<块引用>SymfonyComponentHttpKernelExceptionNotFoundHttpException
找不到控制器方法.
我的路线文件中有此代码
Route::controller(/",HomeController");Route::controller(users",UsersController");
我的控制器中的这段代码
<?php类 UsersController 扩展 BaseController{受保护的 $layout = "layouts.main";公共函数 __construct(){$this->beforeFilter('csrf', array('on' => 'post'));$this->beforeFilter('auth', array('only' => array('getDashboard')));}公共函数 getIndex(){return Redirect::to(用户/注册");}公共函数 getRegister(){$this->layout->content = View::make('users.register');}公共函数 postCreate(){$validator = Validator::make(Input::all(), User::$rules);if ($validator->passes()) {//验证通过,将用户存入数据库$user = 新用户;$user->firstname = Input::get('firstname');$user->lastname = Input::get('lastname');$user->email = 输入::get('email');$user->password = Hash::make(Input::get('password'));$user->save();return Redirect::to('users/login')->with('message', '感谢注册!');} 别的 {return Redirect::to('users/register')->with('message', '发生以下错误')->withErrors($validator)->withInput();}}函数获取登录(){if (Auth::check()) return Redirect::to("users/dashboard")->with('message', '感谢注册!');$this->layout->content = View::make("users.login");}函数 postSignin(){if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))) {return Redirect::to('users/dashboard')->with('message', '你现在登录了!');} 别的 {返回重定向::to('用户/登录')->with('message', '您的用户名/密码组合不正确')->withInput();}}公共函数 getDashboard(){$this->layout->content = View::make("users.dashbord");}公共函数 getLogout(){验证::注销();return Redirect::to('users/login')->with('message', '你现在已经登出!');}
我运行这个命令
php 工匠路线
<上一页>+--------+------------------------------------------------------------+------+-------------------+----------------+----------------+|域名 |网址 |姓名 |行动 |过滤器前 |后过滤器 |+--------+------------------------------------------------------------+------+-------------------+----------------+----------------+||GET 索引/{一个?}/{两个?}/{三个?}/{四个?}/{五个?} ||HomeController@getIndex |||||获取/||HomeController@getIndex |||||获取 {_missing} ||HomeController@missingMethod |||||GET 用户/索引/{一个?}/{两个?}/{三个?}/{四个?}/{五个?} ||用户控制器@getIndex |||||获取用户 ||用户控制器@getIndex |||||GET 用户/注册/{一个?}/{两个?}/{三个?}/{四个?}/{五个?} ||用户控制器@getRegister |||||POST 用户/创建/{一个?}/{两个?}/{三个?}/{四个?}/{五个?} ||用户控制器@postCreate |||||GET users/login/{one?}/{two?}/{three?}/{four?}/{five?} ||用户控制器@getLogin |||||POST users/signin/{one?}/{two?}/{three?}/{four?}/{five?} ||用户控制器@postSignin |||||GET users/dashboard/{one?}/{two?}/{three?}/{four?}/{five?} ||用户控制器@getDashboard |||||GET users/logout/{one?}/{two?}/{three?}/{four?}/{five?} ||用户控制器@getLogout |||||获取用户/{_missing} ||用户控制器@missingMethod |||+--------+------------------------------------------------------------+------+-------------------+----------------+----------------+
我试图访问 localhost:8000/users/login
或任何控制器中的任何方法出现这条消息
SymfonyComponentHttpKernelExceptionNotFoundHttpException找不到控制器方法.
解决方案 尝试改变路由注册的顺序
Route::controller("users","UsersController");Route::controller("/","HomeController");
I have this message whine trying to run any controller
Symfony Component HttpKernel Exception NotFoundHttpException
Controller method not found.
I have this Code in my Route file
Route::controller("/","HomeController");
Route::controller("users","UsersController");
and this code in my Controller
<?php
class UsersController extends BaseController
{
protected $layout = "layouts.main";
public function __construct()
{
$this->beforeFilter('csrf', array('on' => 'post'));
$this->beforeFilter('auth', array('only' => array('getDashboard')));
}
public function getIndex()
{
return Redirect::to("users/register");
}
public function getRegister()
{
$this->layout->content = View::make('users.register');
}
public function postCreate()
{
$validator = Validator::make(Input::all(), User::$rules);
if ($validator->passes()) {
// validation has passed, save user in DB
$user = new User;
$user->firstname = Input::get('firstname');
$user->lastname = Input::get('lastname');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();
return Redirect::to('users/login')->with('message', 'Thanks for registering!');
} else {
return Redirect::to('users/register')->with('message', 'The following errors occurred')->withErrors($validator)->withInput();
}
}
function getLogin()
{
if (Auth::check()) return Redirect::to("users/dashboard")->with('message', 'Thanks for registering!');
$this->layout->content = View::make("users.login");
}
function postSignin()
{
if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))) {
return Redirect::to('users/dashboard')->with('message', 'You are now logged in!');
} else {
return Redirect::to('users/login')
->with('message', 'Your username/password combination was incorrect')
->withInput();
}
}
public function getDashboard()
{
$this->layout->content = View::make("users.dashbord");
}
public function getLogout()
{
Auth::logout();
return Redirect::to('users/login')->with('message', 'Your are now logged out!');
}
Whine I run this Command
php artisan routes
+--------+------------------------------------------------------------+------+-------------------------------+----------------+---------------+ | Domain | URI | Name | Action | Before Filters | After Filters | +--------+------------------------------------------------------------+------+-------------------------------+----------------+---------------+ | | GET index/{one?}/{two?}/{three?}/{four?}/{five?} | | HomeController@getIndex | | | | | GET / | | HomeController@getIndex | | | | | GET {_missing} | | HomeController@missingMethod | | | | | GET users/index/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getIndex | | | | | GET users | | UsersController@getIndex | | | | | GET users/register/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getRegister | | | | | POST users/create/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@postCreate | | | | | GET users/login/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getLogin | | | | | POST users/signin/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@postSignin | | | | | GET users/dashboard/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getDashboard | | | | | GET users/logout/{one?}/{two?}/{three?}/{four?}/{five?} | | UsersController@getLogout | | | | | GET users/{_missing} | | UsersController@missingMethod | | | +--------+------------------------------------------------------------+------+-------------------------------+----------------+---------------+
whine i trying to access to localhost:8000/users/login
or any method in any controller
this message appear
Symfony Component HttpKernel Exception NotFoundHttpException
Controller method not found.
解决方案
Try to change order of route registration
Route::controller("users","UsersController");
Route::controller("/","HomeController");
相关文章