"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 特征以了解默认实现。