【问题标题】:Change USER Model Primary key ID to another in Laravel Passport在 Laravel Passport 中将用户模型主键 ID 更改为另一个
【发布时间】:2019-12-18 10:41:41
【问题描述】:

我有一个项目,我在我的 User.php 模型文件中使用以下命令将用户模型主键从“id”更改为“MemberX”:

受保护的 $primaryKey = 'MemberID'

但我的 Passport accessToken 表仍然使用“id”。我想要“MemberX”

身份证

user_id :::::这里我想要 MemberID 而不是 id

client_id 名称 范围 撤销 created_at 更新时间 expires_at

【问题讨论】:

  • 为什么 Passport 表使用什么很重要? (为什么不使用标准的 Laravel 命名约定?)
  • 什么护照表使用它反映在令牌中。令牌包含“id”,我想将主键 id 更改为另一个键

标签: laravel laravel-passport


【解决方案1】:

也许您应该检查 laravel/config/auth.php 上的驱动程序是否有 eloquent 而不是 database

'providers' => [
        'users' => [
            'driver' => 'eloquent', //instead of database
            'model' => App\User::class,
        ],

database 使用 DatabaseUserProviderfind 方法仅在 id 列上查找。

eloquent 使用EloquentUserProvider,如果在查看id 之前定义了$primaryKey,find 方法会查看主键。

【讨论】:

    【解决方案2】:

    将此代码添加到您的User model

    {
       return $this->hasMany(Passport::clientModel(), 'user_id', 'MemberID');
    }
    

    【讨论】:

    • public function clients() { return $this->hasMany(Passport::clientModel(), 'user_id', 'c_pk_user_id'); }
    猜你喜欢
    • 2021-01-13
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 2018-09-21
    相关资源
    最近更新 更多