[英]Laravel - Login sql error
当我尝试登录Laravel 5.4时,在登录页面上输入我的电子邮件和密码后出现以下错误
SQLSTATE[42S22]: Column not found: 1054 Champ 'id' inconnu dans where clause (SQL: select * from `acteur` where `id` = 21 limit 1)
这不是正确的id名称,它应该是id_biodic_acteur
而不是id
acteur
是我的用户表
这是我的登录页面:
<head>
<meta charset="utf-8">
<title>Se connecter</title>
<link href="/css/app.css" rel="stylesheet">
</head>
<body class="login">
<img class="logo-img" src="/img/logo.jpg" alt="">
<h1 class="title">LPO Extranet</h1>
<form class="form-login" role="form" method="POST" action="{{ route('login') }}">
{{ csrf_field() }}
<div class="form-input-login{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="">E-Mail</label>
<input id="email" type="email" class="form-email" name="email" value="{{ old('email') }}" required autofocus>
@if ($errors->has('email'))
<span class="">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
<div class="form-input-pwd{{ $errors->has('password') ? ' has-error' : '' }}">
<label for="password" class="">Mot de passe</label>
<input id="password" type="password" class="form-pwd" name="password" required>
@if ($errors->has('password'))
<span class="">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
<label>
<input type="checkbox" name="remember" {{ old('remember') ? 'checked' : '' }}> Remember Me
</label>
<button type="submit" class="form-input-submit">
Valider
</button>
<a class="" href="{{ route('password.request') }}">
Mot de passe oublié ?
</a>
</form>
</body>
我改变了一点我的登录控制器:
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
class LoginController extends Controller
{
protected $primaryKey = "id_biodiv_acteur";
protected $table = "acteur";
use AuthenticatesUsers;
protected $redirectTo = '/pages/birds';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
我的身份证明路线:
public function auth()
{
// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes...
$this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
$this->post('register', 'Auth\RegisterController@register');
// Password Reset Routes...
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
$this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
$this->post('password/reset', 'Auth\ResetPasswordController@reset');
}
在这里AuthentificatesUsers:
namespace Illuminate\Foundation\Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
trait AuthenticatesUsers
{
use RedirectsUsers, ThrottlesLogins;
public function showLoginForm()
{
return view('auth.login');
}
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required|string',
'password' => 'required|string',
]);
}
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->has('remember')
);
}
protected function credentials(Request $request)
{
return $request->only($this->username(), 'password');
}
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
protected function authenticated(Request $request, $user)
{
//
}
protected function sendFailedLoginResponse(Request $request)
{
$errors = [$this->username() => trans('auth.failed')];
if ($request->expectsJson()) {
return response()->json($errors, 422);
}
return redirect()->back()
->withInput($request->only($this->username(), 'remember'))
->withErrors($errors);
}
public function username()
{
return 'email';
}
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->flush();
$request->session()->regenerate();
return redirect('/');
}
protected function guard()
{
return Auth::guard();
}
}
谢谢你的帮助 !
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.