2013-09-05 1 views
0

마침내 CodeIgniter에서 이동하기로 결정한 후 Laravel로 시작하지만 간단한 로그인 양식을 사용할 수 없습니다. "MethodNotAllowedHttpException"오류가 계속 발생합니다. 내 컨트롤러 여기간단한 Laravel 로그인 컨트롤러 설정이 작동하지 않습니다.

class LoginController extends BaseController { 

    public function login() 
    { 
     $username = $_POST['username']; 
     $password = $_POST['password']; 
     Login::login($username, $password); 
     //^Call to Login model to check the user's credentials - everything fine there 
    } 

} 

보이는 내보기

{{ Form::open(array('url' => 'LoginController/login')) }} 
     {{ Form::text('username') }} 
     {{ Form::password('password') }} 
     {{ Form::submit('Submit') }} 
{{ Form::close }} 

이다 그리고이 내 경로가

Route::get('LoginController/login', '[email protected]');

내가 끔찍하게 뭔가를하고있는 것 같은 어떻게 여기

입니다 어딘가 잘못 됐어, 너희들이 그걸 지적 해 주실 수 있겠 니?

감사합니다.

+1

을 추가 파일 :' http : // example.com/LoginController/login', 어떻게 작동합니까? –

+0

@RubensMariuzzo 예, http://example.com/LoginController/login을 열 수 있지만 양식이 작동하지 않습니다. "Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException"오류가 발생합니다. –

+0

양식이 _ 작동하지 않는다고 말했을 때. 무슨 소리 야? 양식을 제출할 때 또는 경로를 통해 액세스 할 때입니까? –

답변

3

방금 ​​GET 메서드를 라우팅하는 것처럼 보입니다. 다른 논리를 처리하는 컨트롤러의 별도의 방법을 가지고 더 나은,

Route::get('LoginController/login', '[email protected]'); 
Route::post('LoginController/login', '[email protected]'); 

일반적으로 : 당신은 또한 라우팅 POST 방법은 컨트롤러를 작동하게하는 것이다. 다음과 같은 뭔가 :

Route::get('login', '[email protected]'); 
Route::post('login', '[email protected]'); 

그런 식으로 당신이 컨트롤러의 방법을 더 구체적으로 바로 로그인 페이지를 표시 하나, 실제로 로그인 과정을 수행하는 다른 것입니다.

$username = $_POST['username']; 
$password = $_POST['password']; 

이 따를 수 : 당신이 Laravel 내에서 입력 값을 검색 할 경우 현재의 코드를 대체 할 수 있도록


업데이트

, 당신은 Input 클래스를 사용해야합니다 :

$username = Input::get('username'); 
$password = Input::get('password'); 

해피 코딩!

+0

죄송합니다. 예, 감사합니다. –

+0

@ 존 스미스 (JohnSmith)를 환영합니다! 방금 현재 답변에 개인적인 제안을 추가했습니다. –

+0

그 점에 대해 감사 드리며, 나는 이와 비슷한 것을 묻기 시작했습니다. 사용자가 직접 액세스하여 다른 곳으로 이동하여 다른 작업을 수행하도록 요청합니다. –

2

당신은

{{ Form::open(array('url' => 'LoginController/login', 'method'=>'POST')) }} 
     {{ Form::text('username') }} 
     {{ Form::password('password') }} 
     {{ Form::submit('Submit') }} 
{{ Form::close }} 

를 읽도록 POST와 같은 양식 방법을 지정해야합니다 그리고 당신의 경로에 당신을 통해 접근 할 수 있어야 그 경로 구성을 다음

Route::post('/login', array('uses' => '[email protected]') 
관련 문제