laravel throwing MethodNotAllowedHttpException
非常に基本的なものを動かそうとしています。私はCIに慣れていて、今はLaravel 4を学んでいるのですが、Laravelのドキュメントは簡単ではありません。とにかく、ログインフォームを作成し、データが正常に投稿されたことを確認するために、次のフォームにデータを印刷しようとしています。このような例外が発生しています。
Symfony #Component #HttpKernel #Exception 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');
}
}
と routes があります。
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')); ?>
何かアドバイスがあればお願いします。
102
3
このエラーが出るのは、
GET
ルートに投稿しているからです。私なら、
validate
のルーティングを、GET
とPOST
の別々のルートに分けます。**新しいルート:***。 ``php Route::post('validate', 'MemberController@validateCredentials');
Route::get('validate', function () { 。 return View::make('members/login'); });
私は、ルートの定義に問題があるのではないかと考えています。
あなたはルートを
GET
リクエストとして定義しましたが、フォームはおそらくPOST
リクエストを送信しています。ルート定義を変更してください。``php Route::post('/validate', 'MemberController@validateCredentials');
フォームでは以下のようにします。
デフォルトでは、
Form::open()
は、POST
メソッドを想定しています。ルートに
GET
と書かれている場合は、対応するルートでPOST
に変更してください。または、
GET
メソッドを使用したい場合は、method
パラメータを追加してください。例えば、以下のようになります。