【问题标题】:Laravel 5.8 make:auth change field names not workingLaravel 5.8 make:auth 更改字段名称不起作用
【发布时间】:2023-03-19 15:15:01
【问题描述】:

我尝试通过 laravel new <app name> 创建一个新的 Laravel 应用,并使用内置的 Laravel 身份验证 make:auth

但是当我更改id 列不在我的表中时,我无法使其工作。 我使用的“ID”有一个不同的列名,它是StaffID

如何让它发挥作用?我的登录代码 (make:auth) 中没有看到 id

谢谢。

【问题讨论】:

  • 所以 id StaffID 仍然是主键自增列吗?尝试添加受保护的 $primaryKey = 'StaffID';直接在类中的用户模型。 laravel.com/docs/5.8/eloquent#eloquent-model-conventions
  • 提供您的代码示例以查看,否则无法仅猜测和回答。
  • 我认为您应该为StaffID 创建新列,并通过migration 使其独一无二。不建议更改默认 ID auto increment 列。
  • 好吧,我现在开始工作了,@Petay87 评论是关键。我添加了protected $primaryKey = 'StaffID',然后繁荣了。

标签: database laravel laravel-5.8


【解决方案1】:

更改与模型关联的主键

您已经更改了数据库上主键的名称,但 Laravel 默认假设每个表都有一个“id”的主自动增量键。这有很多原因,最重要的是拥有它是标准做法,这意味着您不需要在每个模型上声明它。

但是,由于您已将主键从 id 更改为 StaffID,Laravel 还需要注意数据库的此更改。您需要做的是直接在类中将以下内容添加到用户模型中:

protected $primaryKey = 'StaffID ';

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 2015-06-12
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多