laravel smider MethodNotAllowedHttpException
Jeg forsøger at få noget meget grundlæggende til at køre. Jeg er vant til CI og lærer nu Laravel 4, og deres docs gør det ikke let! Anyways, jeg forsøger at oprette en login formular og bare sørge for at data er bogført med succes ved at udskrive det i den næste formular. Jeg får denne undtagelse:
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
og min 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');
}
}
og ruter har:
Route::get('/', function()
{
return View::make('hello');
});
Route::get('/members', 'MemberController@index');
Route::get('/validate', 'MemberController@validateCredentials');
og endelig har min view login.php denne formular retning:
<?php echo Form::open(array('action' => 'MemberController@validateCredentials')); ?>
Enhver hjælp vil blive meget værdsat.
102
3
Du får denne fejl, fordi du sender til en
GET
-rute.Jeg ville opdele din routing for
validate
i separateGET
- ogPOST
-ruter.Nye ruter:
Min mistanke er, at problemet ligger i din rutedefinition.
Du har defineret ruten som en
GET
-forespørgsel, men formularen sender sandsynligvis enPOST
-forespørgsel. Ændr din rutedefinition.som standard antager
Form::open()
enPOST
-metode.du har
GET
i dine ruter. ændre den tilPOST
i den tilsvarende rute.eller hvis du ønsker at bruge
GET
-metoden, skal du tilføje parameterenmethod
.f.eks.