Database Laravel 5.8 make:验证更改字段名称无效
我试图通过Database Laravel 5.8 make:验证更改字段名称无效,database,laravel,laravel-5.8,Database,Laravel,Laravel 5.8,我试图通过Laravel new创建一个新的Laravel应用程序,并使用内置的Laravel身份验证make:auth 但是当我更改id列不在我的表中时,我无法使它工作。 我使用的“ID”有不同的列名,它是StaffID 怎样才能使它起作用?我在我的登录代码中没有看到id(make:auth) 谢谢。更改与模型关联的主键 您已经更改了数据库主键的名称,但默认情况下,Laravel假定每个表都有一个“id”的主键自动递增。这有很多原因,最重要的是,拥有它是标准实践,这意味着您不需要在每个模型上声
Laravel new
创建一个新的Laravel应用程序,并使用内置的Laravel身份验证make:auth
但是当我更改id
列不在我的表中时,我无法使它工作。
我使用的“ID”有不同的列名,它是StaffID
怎样才能使它起作用?我在我的登录代码中没有看到id
(make:auth
)
谢谢。更改与模型关联的主键
您已经更改了数据库主键的名称,但默认情况下,Laravel假定每个表都有一个“id”的主键自动递增。这有很多原因,最重要的是,拥有它是标准实践,这意味着您不需要在每个模型上声明它
但是,由于您已将主键从id更改为StaffID,Laravel还需要注意数据库的这种更改。您需要做的是将以下内容直接添加到类中的用户模型中:
protected $primaryKey = 'StaffID ';
那么id StaffID仍然是主键自动递增列吗?尝试添加受保护的$primaryKey='StaffID';直接在类中创建用户模型。提供您的代码示例以供查看,否则仅凭猜测和回答是不可能的。试试看,我认为您应该为
StaffID
创建新列,并通过迁移使其唯一。不建议更改默认IDauto increment
列。我现在可以使用了,@Petay87 comment是关键。我添加了protected$primaryKey='StaffID'
,然后爆炸。