当尝试使用 Laravel 的 Auth 类时,我发现它总是失败,因为(AFAIK)尝试()方法只是试图选择用户名:
string(55) "SELECT * FROM `mdl_user` WHERE (`username` = ?) LIMIT 1"
(通过 Event::listen('laravel.eloquent') 输出)
我使用 Eloquent 作为驱动程序,表字段是“用户名”和“密码”,我的模型(Moodle_User,位于 models/moodle/user.php)是这样写的:
class Moodle_User extends Eloquent {
public static $table = 'user';
public static $connection = 'moodle';
}
如果我按原样使用模型,它可以完美地工作:
// returns the correct object
$user = Moodle_User::where('username', $username)->where('password', md5($password))->get();
另外,我没有使用 Hash 类,因为 Moodle 目前使用 MD5,所以我这样调用Auth::attempt()
:
Auth::attempt(array('username' => $username, 'password' => md5($password)))
但它总是返回 false。如果我通过 Moodle_User 模型做同样的事情,它会按预期工作。
为什么它总是返回假?