未找到控制器方法 - laravel 4

时间:2014-02-11 09:54:55

标签: php routing laravel-4

我有这条消息,试图运行任何控制器

  

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

     

找不到控制器方法。

我的路线文件中有此代码

Route::controller("/","HomeController");

Route::controller("users","UsersController");

和我的控制器中的代码

 <?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!');
    }

抱怨我运行此命令

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 |                |               |
+--------+------------------------------------------------------------+------+-------------------------------+----------------+---------------+

抱怨我试图访问localhost:8000/users/login或任何控制器中的任何方法 此消息出现

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

Controller method not found.

1 个答案:

答案 0 :(得分:18)

尝试更改路线注册的顺序

Route::controller("users","UsersController");

Route::controller("/","HomeController");