"Column not found" 登录 Laravel 8 应用程序时 - 假设缺少列 "id"?
"Column not found" when logging in to Laravel 8 application - assuming column "id" is missing?
我一直在开发 Laravel 8 应用程序,最近我一直在研究应用程序的安全性。我已选择“手动”验证用户 - 就像不使用可用的入门工具包一样 - 并且有一些我可以创建用户并让他们登录到应用程序的东西。
我遇到的问题是,在尝试登录成功后,出现以下错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where
clause' (SQL: select * from users
where `` = 11 limit 1)
一旦凭据与数据库中的内容相匹配,就会发生此错误。我假设未知列是 id
,因为我尝试登录的当前用户的 ID 为 11,这符合错误中的 SQL 查询。
用户table架构如下:
用户模型如下:
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
/**
* Class User
*
* @property int $id
* @property string $name
* @property string $email
* @property int|null $email_verified
* @property string|null $password
* @property bool $user_level
* @property bool|null $is_active
* @property bool|null $is_admin
* @property int|null $created_at
* @property bool|null $blocked
* @property string|null $email_hash
*
* @package App\Models
*/
class User extends Model implements Authenticatable, HasMedia
{
use InteractsWithMedia;
protected $table = 'users';
public $timestamps = false;
protected $primaryKey = 'id';
protected $username = 'email';
protected $casts = [
'email_verified' => 'int',
'user_level' => 'bool',
'is_active' => 'bool',
'is_admin' => 'bool',
'created_at' => 'int',
'blocked' => 'bool'
];
protected $hidden = [
'password'
];
protected $fillable = [
'name',
'email',
'email_verified',
'password',
'user_level',
'is_active',
'is_admin',
'blocked',
'email_hash'
];
public function registerMediaCollections() : void
{
$this->addMediaCollection('userCSCS')
->acceptsFile(function (File $file) {
return $file->mimeType === 'image/jpeg';
});
}
public function registerMediaConversions(Media $media = null): void
{
$this->addMediaConversion('thumb')
->width(368)
->height(232)
->sharpen(10);
}
public function getAuthIdentifierName() {
return $this->email;
}
public function getAuthIdentifier() {
return $this->id;
}
public function getAuthPassword() {
return $this->password;
}
public function getRememberToken() {
return $this->remember_token;
}
public function setRememberToken($value) {}
public function getRememberTokenName() {}
}
处理登录尝试的控制器如下:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
/**
* Handle an authentication attempt.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->route('adminDashboard');
}
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
]);
}
}
config\auth.php
文件如下(b:
的注释我去掉了
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
'table' => 'users'
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
],
'password_timeout' => 10800,
];
laravel.log 文件中与此错误相关的两个条目:
[2021-05-24 19:13:19] local.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 11 limit 1) {"exception":"[object] (Illuminate\Database\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 11 limit 1) at /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php:678)
[stacktrace]
#0 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(638): Illuminate\Database\Connection->runQueryCallback()
#1 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(346): Illuminate\Database\Connection->run()
#2 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2315): Illuminate\Database\Connection->select()
#3 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2303): Illuminate\Database\Query\Builder->runSelect()
#4 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2867): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#5 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2304): Illuminate\Database\Query\Builder->onceWithColumns()
#6 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(598): Illuminate\Database\Query\Builder->get()
#7 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(582): Illuminate\Database\Eloquent\Builder->getModels()
#8 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(254): Illuminate\Database\Eloquent\Builder->get()
#9 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php(52): Illuminate\Database\Eloquent\Builder->first()
#10 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(141): Illuminate\Auth\EloquentUserProvider->retrieveById()
#11 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(212): Illuminate\Auth\SessionGuard->user()
#12 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(213): Illuminate\Auth\SessionGuard->id()
#13 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(200): Illuminate\Session\DatabaseSessionHandler->userId()
#14 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(186): Illuminate\Session\DatabaseSessionHandler->addUserInformation()
#15 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\Session\DatabaseSessionHandler->Illuminate\Session\{closure}()
#16 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(188): tap()
#17 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(125): Illuminate\Session\DatabaseSessionHandler->getDefaultPayload()
#18 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\Session\DatabaseSessionHandler->write()
#19 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(236): Illuminate\Session\Store->save()
#20 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(130): Illuminate\Session\Middleware\StartSession->saveSession()
#21 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#22 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
#23 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#25 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#27 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#28 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then()
#29 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack()
#30 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute()
#31 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute()
#32 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch()
#33 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#34 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#36 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#37 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#38 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#39 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#40 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#42 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#44 /home/michael/Travis/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\Cors\HandleCors->handle()
#46 /home/michael/Travis/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#48 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then()
#50 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#51 /home/michael/Travis/public/index.php(52): Illuminate\Foundation\Http\Kernel->handle()
#52 /home/michael/Travis/server.php(21): require_once('/home/michael/T...')
#53 {main}
[previous exception] [object] (PDOException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' at /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php:338)
[stacktrace]
#0 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): PDO->prepare()
#1 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(671): Illuminate\Database\Connection->Illuminate\Database\{closure}()
#2 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(638): Illuminate\Database\Connection->runQueryCallback()
#3 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(346): Illuminate\Database\Connection->run()
#4 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2315): Illuminate\Database\Connection->select()
#5 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2303): Illuminate\Database\Query\Builder->runSelect()
#6 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2867): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#7 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2304): Illuminate\Database\Query\Builder->onceWithColumns()
#8 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(598): Illuminate\Database\Query\Builder->get()
#9 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(582): Illuminate\Database\Eloquent\Builder->getModels()
#10 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(254): Illuminate\Database\Eloquent\Builder->get()
#11 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php(52): Illuminate\Database\Eloquent\Builder->first()
#12 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(141): Illuminate\Auth\EloquentUserProvider->retrieveById()
#13 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(212): Illuminate\Auth\SessionGuard->user()
#14 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(213): Illuminate\Auth\SessionGuard->id()
#15 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(200): Illuminate\Session\DatabaseSessionHandler->userId()
#16 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(186): Illuminate\Session\DatabaseSessionHandler->addUserInformation()
#17 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\Session\DatabaseSessionHandler->Illuminate\Session\{closure}()
#18 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(188): tap()
#19 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(125): Illuminate\Session\DatabaseSessionHandler->getDefaultPayload()
#20 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\Session\DatabaseSessionHandler->write()
#21 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(236): Illuminate\Session\Store->save()
#22 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(130): Illuminate\Session\Middleware\StartSession->saveSession()
#23 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#24 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
#25 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#27 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#28 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#29 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#30 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then()
#31 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack()
#32 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute()
#33 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute()
#34 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch()
#35 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#36 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#37 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#38 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#39 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#41 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#42 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#44 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#46 /home/michael/Travis/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\Cors\HandleCors->handle()
#48 /home/michael/Travis/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#50 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#51 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then()
#52 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#53 /home/michael/Travis/public/index.php(52): Illuminate\Foundation\Http\Kernel->handle()
#54 /home/michael/Travis/server.php(21): require_once('/home/michael/T...')
#55 {main}
"}
我真的对如何继续感到困惑,因为这是一个严重的错误,并且考虑到它试图构建一个不使用任何列作为列的查询(因为它是未知的)是一个奇怪的问题而且不是我'我可以着手修理了。所以我非常感谢您的帮助!
问题是由于您执行了以下方法造成的:
public function getAuthIdentifierName() {
return $this->email;
}
public function getAuthIdentifier() {
return $this->id;
}
public function getAuthPassword() {
return $this->password;
}
public function getRememberToken() {
return $this->remember_token;
}
public function setRememberToken($value) {}
public function getRememberTokenName() {}
通常情况下,如果您不想更改,则不需要实施它们。
例如 getAuthIdentifierName
应该像这样实现:
return $this->getKeyName();
实际上是做什么的:
return 'id';
你实现了它:
return $this->id;
当您没有从数据库中检索模型时,实际上是空的。
请参阅 Authenticatable 特征以了解默认实现。
我一直在开发 Laravel 8 应用程序,最近我一直在研究应用程序的安全性。我已选择“手动”验证用户 - 就像不使用可用的入门工具包一样 - 并且有一些我可以创建用户并让他们登录到应用程序的东西。
我遇到的问题是,在尝试登录成功后,出现以下错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from
users
where `` = 11 limit 1)
一旦凭据与数据库中的内容相匹配,就会发生此错误。我假设未知列是 id
,因为我尝试登录的当前用户的 ID 为 11,这符合错误中的 SQL 查询。
用户table架构如下:
用户模型如下:
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
/**
* Class User
*
* @property int $id
* @property string $name
* @property string $email
* @property int|null $email_verified
* @property string|null $password
* @property bool $user_level
* @property bool|null $is_active
* @property bool|null $is_admin
* @property int|null $created_at
* @property bool|null $blocked
* @property string|null $email_hash
*
* @package App\Models
*/
class User extends Model implements Authenticatable, HasMedia
{
use InteractsWithMedia;
protected $table = 'users';
public $timestamps = false;
protected $primaryKey = 'id';
protected $username = 'email';
protected $casts = [
'email_verified' => 'int',
'user_level' => 'bool',
'is_active' => 'bool',
'is_admin' => 'bool',
'created_at' => 'int',
'blocked' => 'bool'
];
protected $hidden = [
'password'
];
protected $fillable = [
'name',
'email',
'email_verified',
'password',
'user_level',
'is_active',
'is_admin',
'blocked',
'email_hash'
];
public function registerMediaCollections() : void
{
$this->addMediaCollection('userCSCS')
->acceptsFile(function (File $file) {
return $file->mimeType === 'image/jpeg';
});
}
public function registerMediaConversions(Media $media = null): void
{
$this->addMediaConversion('thumb')
->width(368)
->height(232)
->sharpen(10);
}
public function getAuthIdentifierName() {
return $this->email;
}
public function getAuthIdentifier() {
return $this->id;
}
public function getAuthPassword() {
return $this->password;
}
public function getRememberToken() {
return $this->remember_token;
}
public function setRememberToken($value) {}
public function getRememberTokenName() {}
}
处理登录尝试的控制器如下:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
/**
* Handle an authentication attempt.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->route('adminDashboard');
}
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
]);
}
}
config\auth.php
文件如下(b:
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
'table' => 'users'
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
],
'password_timeout' => 10800,
];
laravel.log 文件中与此错误相关的两个条目:
[2021-05-24 19:13:19] local.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 11 limit 1) {"exception":"[object] (Illuminate\Database\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' (SQL: select * from `users` where `` = 11 limit 1) at /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php:678)
[stacktrace]
#0 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(638): Illuminate\Database\Connection->runQueryCallback()
#1 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(346): Illuminate\Database\Connection->run()
#2 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2315): Illuminate\Database\Connection->select()
#3 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2303): Illuminate\Database\Query\Builder->runSelect()
#4 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2867): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#5 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2304): Illuminate\Database\Query\Builder->onceWithColumns()
#6 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(598): Illuminate\Database\Query\Builder->get()
#7 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(582): Illuminate\Database\Eloquent\Builder->getModels()
#8 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(254): Illuminate\Database\Eloquent\Builder->get()
#9 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php(52): Illuminate\Database\Eloquent\Builder->first()
#10 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(141): Illuminate\Auth\EloquentUserProvider->retrieveById()
#11 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(212): Illuminate\Auth\SessionGuard->user()
#12 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(213): Illuminate\Auth\SessionGuard->id()
#13 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(200): Illuminate\Session\DatabaseSessionHandler->userId()
#14 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(186): Illuminate\Session\DatabaseSessionHandler->addUserInformation()
#15 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\Session\DatabaseSessionHandler->Illuminate\Session\{closure}()
#16 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(188): tap()
#17 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(125): Illuminate\Session\DatabaseSessionHandler->getDefaultPayload()
#18 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\Session\DatabaseSessionHandler->write()
#19 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(236): Illuminate\Session\Store->save()
#20 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(130): Illuminate\Session\Middleware\StartSession->saveSession()
#21 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#22 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
#23 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#24 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#25 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#27 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#28 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then()
#29 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack()
#30 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute()
#31 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute()
#32 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch()
#33 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#34 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#36 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#37 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#38 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#39 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#40 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#42 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#44 /home/michael/Travis/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\Cors\HandleCors->handle()
#46 /home/michael/Travis/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#48 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then()
#50 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#51 /home/michael/Travis/public/index.php(52): Illuminate\Foundation\Http\Kernel->handle()
#52 /home/michael/Travis/server.php(21): require_once('/home/michael/T...')
#53 {main}
[previous exception] [object] (PDOException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where clause' at /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php:338)
[stacktrace]
#0 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(338): PDO->prepare()
#1 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(671): Illuminate\Database\Connection->Illuminate\Database\{closure}()
#2 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(638): Illuminate\Database\Connection->runQueryCallback()
#3 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Connection.php(346): Illuminate\Database\Connection->run()
#4 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2315): Illuminate\Database\Connection->select()
#5 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2303): Illuminate\Database\Query\Builder->runSelect()
#6 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2867): Illuminate\Database\Query\Builder->Illuminate\Database\Query\{closure}()
#7 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2304): Illuminate\Database\Query\Builder->onceWithColumns()
#8 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(598): Illuminate\Database\Query\Builder->get()
#9 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(582): Illuminate\Database\Eloquent\Builder->getModels()
#10 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(254): Illuminate\Database\Eloquent\Builder->get()
#11 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php(52): Illuminate\Database\Eloquent\Builder->first()
#12 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(141): Illuminate\Auth\EloquentUserProvider->retrieveById()
#13 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php(212): Illuminate\Auth\SessionGuard->user()
#14 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(213): Illuminate\Auth\SessionGuard->id()
#15 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(200): Illuminate\Session\DatabaseSessionHandler->userId()
#16 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(186): Illuminate\Session\DatabaseSessionHandler->addUserInformation()
#17 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\Session\DatabaseSessionHandler->Illuminate\Session\{closure}()
#18 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(188): tap()
#19 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php(125): Illuminate\Session\DatabaseSessionHandler->getDefaultPayload()
#20 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\Session\DatabaseSessionHandler->write()
#21 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(236): Illuminate\Session\Store->save()
#22 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(130): Illuminate\Session\Middleware\StartSession->saveSession()
#23 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#24 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
#25 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#26 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#27 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#28 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#29 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#30 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then()
#31 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack()
#32 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute()
#33 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute()
#34 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch()
#35 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#36 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#37 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#38 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#39 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#41 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#42 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#44 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#46 /home/michael/Travis/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\Cors\HandleCors->handle()
#48 /home/michael/Travis/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#50 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#51 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then()
#52 /home/michael/Travis/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#53 /home/michael/Travis/public/index.php(52): Illuminate\Foundation\Http\Kernel->handle()
#54 /home/michael/Travis/server.php(21): require_once('/home/michael/T...')
#55 {main}
"}
我真的对如何继续感到困惑,因为这是一个严重的错误,并且考虑到它试图构建一个不使用任何列作为列的查询(因为它是未知的)是一个奇怪的问题而且不是我'我可以着手修理了。所以我非常感谢您的帮助!
问题是由于您执行了以下方法造成的:
public function getAuthIdentifierName() {
return $this->email;
}
public function getAuthIdentifier() {
return $this->id;
}
public function getAuthPassword() {
return $this->password;
}
public function getRememberToken() {
return $this->remember_token;
}
public function setRememberToken($value) {}
public function getRememberTokenName() {}
通常情况下,如果您不想更改,则不需要实施它们。
例如 getAuthIdentifierName
应该像这样实现:
return $this->getKeyName();
实际上是做什么的:
return 'id';
你实现了它:
return $this->id;
当您没有从数据库中检索模型时,实际上是空的。
请参阅 Authenticatable 特征以了解默认实现。