Laravel 4.2抛出MethodNotAllowedHttpException

时间:2014-06-09 16:20:06

标签: php authentication laravel laravel-4

我有这个代码在以前的版本中工作,现在不再工作了。我正在做这样简单的用户自动化:

形式:

 {{ Form::open(array(
        'url'       => 'login',
        'method'    => 'PUT',
        'class'     => 'pure-form pure-form-stacked'
  )) }}

                    {{ $errors->first('email') }}
                    {{ $errors->first('password') }}

                    {{ Form::text('email', Input::old('email'), array('placeholder' => 'user')) }}
                    {{ Form::password('password', array('placeholder' => 'password')) }}    

                    {{ Form::submit('Log in', array('class'=>'button-primary')) }}


   {{ Form::close() }}

路线:

Route::get('login', array('https', function(){
return View::make('back-end/login');
}));

Route::post('login', array('https', function(){
$userdata = array(
        'email' => Input::get('email'),
        'password' => Input::get('password')
);

if(Auth::attempt($userdata)){
        return Redirect::to('dashboard');
    } else {
        return Redirect::to('login');
    }
}));


Route::group(['before' => 'auth', 'prefix' => 'dashboard'], function(){
    Route::get('/', 'DashboardController@getDashboard');
    Route::resource('blog', 'BlogController');
    Route::get('logout', [
           'as'   => 'logout',
           'uses' => 'UserController@getLogout'
        ]); 
});

登录页面将加载,但是当我提交表单时,我会输出MethodNotAllowedHttpException。

1 个答案:

答案 0 :(得分:3)

您的登录路线为POST,但您的表单正在使用PUT。在'method' => 'PUT',电话中将'method' => 'POST',切换为Form::open(因为您不应该使用PUT),它应该有效。