【发布时间】:2022-01-03 21:12:04
【问题描述】:
users表id列的默认代码如下:
**$table->id();**
但我改为: $table->bigIncrements('user_id');
现在我收到错误消息,说在根本不运行用户表查询的文件中找不到“id”列。我不知道我哪里错了。
还是说 id 列毕竟是包就不能改变了?
【问题讨论】:
标签: laravel laravel-authentication laravel-ui
users表id列的默认代码如下:
**$table->id();**
但我改为: $table->bigIncrements('user_id');
现在我收到错误消息,说在根本不运行用户表查询的文件中找不到“id”列。我不知道我哪里错了。
还是说 id 列毕竟是包就不能改变了?
【问题讨论】:
标签: laravel laravel-authentication laravel-ui
$user->id() 默认检查主键列'id'。
因此,您可以像这样重命名模型中的主键:
protected $primaryKey = 'user_id';
【讨论】:
id() 是 bigIncrements 方法的别名。所以你可以这样写
$table->id('user_id');
【讨论】:
请转到您的模型并添加以下代码行,它会解决您的问题。
这是因为 laravel 默认会搜索 id 并没有找到它,因为你改变了它,如果你想让 Laravel 知道你的主键不是 id 而是 'user_id' 你应该把它添加到你的Laravel 应该从那里得到它的模型。
protected $primaryKey = 'user_id';
就是这样。
【讨论】: