【发布时间】:2012-10-25 05:41:41
【问题描述】:
您好,我是 laravel 的新手,我正在尝试编写登录表单的功能代码:
这就是我创建新用户的方式(效果很好)
public function action_newuser()
{
$email = Input::get('email');
$password = Input::get('password');
$new_user = Input::get('new_user', 'off');
$first_name= Input::get('firstname');
$last_name= Input::get('last_name');
$username= Input::get('username');
$user = new User();
$user->email = $email;
$user->password = Hash::make($password);
$user->first_name =$first_name;
$user->last_name= $last_name;
$user->username= $username;
try{
$user->save();
}
catch(Exception $e) {
echo "Failed to create new user!";
}
这是我的登录功能:
public function action_login()
{
$password = Input::get('password');
$username= Input::get('username');
$remember= Input::get('remember', 'off');
if($remember =='off') $remember=FALSE;
if($remember =='on') $remember=TRUE;
$credentials = array(
'username' => $username,
'password' => $password,
'remember' => $remember
);
if( Auth::attempt($credentials))
{
return Redirect::to('dashboard/index');
}
else
{
#I put this line to check are the values passed from my form are correct.
echo $password.' ' .$username.' '. $remember;
}
}
当我提交登录表单时,它总是显示一个空白页面,其中包含 $password、$username 和 $remember 值。这意味着 Auth::attempt() 不能正常工作。
可能是什么问题?
【问题讨论】:
-
$remember真的是凭证吗? -
@WaleedKhan 没问题。 Auth::attempt 将参数作为 array('username', 'password', 'remember')
-
@HasanAyan 不是真的,内置的记住是尝试的第二个参数(array $credentials, boolean $remember)。第一个数组中的其他参数是您尝试匹配的用户列,例如在 where 子句中。 laravel.com/docs/security#authenticating-users