猿问

laravel抛出MethodNotAllowedHttpException

我正在尝试一些非常基本的操作。我已经习惯了CI,现在正在学习Laravel 4,他们的文档并不容易!无论如何,我试图创建一个登录表单,并通过在下一个表单中打印数据来确保成功发布了数据。我收到此异常:


Symfony \组件\ HttpKernel \异常\ MethodNotAllowedHttpException


和我的MemberController.php:


    public function index()

    {

        if (Session::has('userToken'))

        {

            /*Retrieve data of user from DB using token & Load view*/

            return View::make('members/profile');

        }else{

            return View::make('members/login');

        }

    }


    public function validateCredentials()

    {

        if(Input::post())

        {

            $email = Input::post('email');

            $password = Input::post('password');

            return "Email: " . $email . " and Password: " . $password;

        }else{

            return View::make('members/login');

        }

    }

路线有:


Route::get('/', function()

{

    return View::make('hello');

});


Route::get('/members', 'MemberController@index');

Route::get('/validate', 'MemberController@validateCredentials');

最后,我的视图login.php具有以下表单方向:


<?php echo Form::open(array('action' => 'MemberController@validateCredentials')); ?>

任何帮助将不胜感激。


千万里不及你
浏览 692回答 3
3回答

芜湖不芜

我怀疑问题出在您的路线定义上。您将路由定义为GET请求,但是表单可能正在发送POST请求。更改您的路线定义。Route::post('/validate', 'MemberController@validateCredentials');通常,更好的做法是使用命名路由(如果控制器方法/类发生更改,则有助于扩展)。Route::post('/validate', array(&nbsp; &nbsp; 'as' => 'validate',&nbsp; &nbsp; 'uses' => 'MemberController@validateCredentials'));在表格中使用以下内容<?php echo Form::open(array('route' => 'validate')); ?>
随时随地看视频慕课网APP
我要回答