我有一个基本的 laravel 4 应用程序,允许某人注册然后登录。我正在努力做到这一点,以便当用户成功完成注册时,他们会自动登录。我收到错误异常“传递给 Illuminate\Auth\Guard::login() 的参数 1 必须是 Illuminate\Auth\UserInterface 的实例,用户给定的实例”。我知道这意味着传递给登录方法的第一个参数不正确,但我不明白为什么当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();
}
}
}
?>