0

最終的にCodeIgniterから移行することを決定した後、Laravelを使い始めたばかりですが、単純なログインフォームが機能しません。「MethodNotAllowedHttpException」エラーが発生し続けます。

これが私のコントローラーの外観です

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', 'LoginController@login');

私はどこかでひどく間違ったことをしています、皆さんはそれを指摘できますか?

ありがとう!

4

2 に答える 2

3

メソッドをルーティングしているようですGETPOSTコントローラーを機能させるには、メソッドをルーティングする必要もあります。

Route::get('LoginController/login', 'LoginController@login');
Route::post('LoginController/login', 'LoginController@login');

通常、異なるロジックを処理するには、コントローラーでメソッドを分離する必要があります。次のようなもの:

Route::get('login', 'LoginController@showLogin');
Route::post('login', 'LoginController@processLogin');

そうすれば、コントローラーのメソッドがより具体的になり、1 つはログイン ページを表示するだけで、もう 1 つは実際にログイン プロセスを実行します。


アップデート

Laravel 内で入力値を取得する場合は、Inputクラスを使用する必要があるため、現在のコードを置き換えます。

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

次のようになります。

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

ハッピーコーディング!

于 2013-09-05T14:37:42.397 に答える