Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Laravel 5.8 make:验证更改字段名称无效_Database_Laravel_Laravel 5.8 - Fatal编程技术网

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
创建新列,并通过
迁移使其唯一。不建议更改默认ID
auto increment
列。我现在可以使用了,@Petay87 comment是关键。我添加了
protected$primaryKey='StaffID'
,然后爆炸。