logindetials
次の列で呼び出されるテーブルがあります
Login_Id | Login_Name | Login_Passwor | Login_Email | .......
認証しようとすると、以下のようなエラーが発生します。
Illuminate \ Database \ QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'username' in 'where
clause' (SQL: select * from `logindetails` where `username` = admin limit 1)
私はconfig / auth.phpでこれらを試しました
'table' => 'logindetails',
'username' => 'Login_Name',
'password' => 'Login_Passwor',
およびmodels / User.php
protected $fillable=array('Login_Name','Login_Passwor','Login_Email',...);
protected $primaryKey = "Login_Id";
protected $table = 'logindetails';
protected $hidden = array('Login_Passwor');
public function getAuthIdentifier()
{
return $this->getKey();
}
public function getAuthPassword()
{
return $this->Login_Passwor;
}
public function getReminderEmail()
{
return $this->Login_Email;
}
また、ログインコントローラでも
if (Input::server("REQUEST_METHOD") == "POST") {
$validator=Validator::make
(Input::all(), ["userid" => "required","password" => "required"]);
if ($validator->passes()) {
$credentials = [
"Login_Name" => Input::get("userid"),
"Login_Passwor" => Input::get("password")];
if (Auth::attempt($credentials)) {
return Redirect::route("/");
}
}
$data["errors"] = new MessageBag(["password" =>
["Username and/or password invalid."]]);
$data["Login_Name"] = Input::get("userid");
return Redirect::route("login")->withInput($data);
}
しかし、ラクシャはありません。誰かがこれから私を助けてください
認証するときは、ユーザー名をLogin_Nameに変更する必要がありますが、パスワードはパスワードのままにする必要があります。
Auth::attempt( array('Login_Name' => $username, 'password' => $password) )
認証時にユーザーがどのように取得されるかをよりよく理解するには、このファイルを参照してください:https://github.com/illuminate/auth/blob/master/EloquentUserProvider.php#L60
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加