LaravelのAuthクラスを使おうとすると、(AFAIK)attempt()メソッドがユーザー名を選択しようとしているだけなので、常に失敗することがわかります。
string(55) "SELECT * FROM `mdl_user` WHERE (`username` = ?) LIMIT 1"
(これはEvent :: listen('laravel.eloquent')を介して出力されます)
私はドライバーとしてEloquentを使用しており、テーブルフィールドは「username」と「password」であり、私のモデル(models / moodle / user.phpにあるMoodle_User)は次のように記述されています。
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();
また、Moodleは現在MD5を使用しているため、Hashクラスを使用していません。そのため、次のように呼び出しますAuth::attempt()
。
Auth::attempt(array('username' => $username, 'password' => md5($password)))
ただし、常にfalseを返します。Moodle_Userモデルを介してまったく同じことを行うと、期待どおりに機能します。
なぜ常にfalseを返すのですか?