0

我有两种类型的用户管理员(默认用户表)和客户(我创建了客户表)。我使用了一个带有 laravel-jetstream 附带的数据库驱动程序的会话。我对管理员身份验证没有任何问题。我正在为管理员成功获取用户信息。但是当我与客户一起登录时,我确实登录了,但没有获得任何登录的客户信息。我检查了数据库。

授权文件

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Models\Customer::class,
    ],
],

客户登录

public function login(Request $request) : object
{
    if (Auth::guard('customer')->attempt($request->only('email', 'password'))) {
        return redirect()->intended('/');
    }else {
        return back()->withErrors(['message' => 'Incorrect email or password']);
    }
}

我的会话表如下所示

Schema::create('sessions', function (Blueprint $table) {
        $table->string('id')->primary();
        $table->foreignId('user_id')->nullable()->index();
        $table->string('ip_address', 45)->nullable();
        $table->text('user_agent')->nullable();
        $table->text('payload');
        $table->integer('last_activity')->index();
    });

我理解$table->foreignId('user_id')->nullable()->index(); 指向默认用户ID。如果是客户,我如何正确存储客户 ID 和检索信息?

4

1 回答 1

0

我找到了我的答案。我犯了一个愚蠢的错误。

{{ Auth::guard('customer')->user()->name }}

我错过了守卫。

于 2020-10-18T16:08:26.953 回答