誰かが登録してからログインできるようにする基本的なlaravel 4アプリがあります。ユーザーが登録を正常に完了すると、自動的にログインするようにしようとしています。「Argument 1 passed to Illuminate\Auth\Guard::login() must be an instance of Illuminate\Auth\UserInterface, instance of User given」というエラー例外が発生します。これは、ログインメソッドに渡される最初の引数が正しくないことを意味することを理解していますが、laravel ドキュメントで
$user = User::find(1);
Auth::login($user);
これが私のコントローラーです
<?php
Class UsersController extends BaseController {
public $restful = 'true';
protected $layout = 'layouts.default';
public function post_create()
{
$validation = User::validate(Input::all());
if ($validation->passes()) {
User::create(array(
'username'=>Input::get('username'),
'password'=>Hash::make(Input::get('password'))
));
$user = User::where('username', '=', Input::get('username'))->first();
Auth::login($user);
return Redirect::Route('home')->with('message', 'Thanks for registering! You are now logged in!');
}
else {
return Redirect::Route('register')->withErrors($validation)->withInput();
}
}
}
?>