php - SQLSTATE[HY000]:一般错误:1364 字段“名称”在 laravel 中没有默认值
问题描述
我正在使用 mysql v5.7 和 laravel v5.8。我使用 by auth 制作了注册功能,当我尝试注册它时显示错误。
SQLSTATE[HY000]:一般错误:1364 字段“名称”没有默认值(SQL:插入users
(email
、、、、password
)值(***@gmail.com updated_at
,created_at
$2yd4GvC,2020-05-25 19: 53:37, 2020-05-25 19:53:37))
它在 localhost 中工作正常,但在将其添加到 ec2 服务器后显示此错误。
我改变了 config/database.php
像这样
'严格' => 假,
然后我可以注册,但名称列中没有值。
并且可以放置除名称列之外的其他列。
我不知道为什么它可以在本地服务器上运行,但在实时服务器中显示错误。
这是我的代码。
用户.php
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
create_users_table.php
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
有谁能够帮我?
解决方案
这个查询:
INSERT INTO users (email, password, updated_at, created_at)
VALUES (***@gmail.com, $2yd4GvC, 2020-05-25 19:53:37, 2020-05-25 19:53:37)
不插入name
字段。当该字段不能为 NULL 时,MySQL 会报错。
您在本地主机上没有收到此错误的原因可能是 MySQL 配置不那么严格。
设置'strict' => false,
将删除错误,但您的查询仍然不会插入name
字段值。
所以真正的解决方案是将你的数据库配置设置为严格(因为这样你会更快地注意到错误)。然后更改您的查询,以便插入该name
值。
推荐阅读
- json - jmeter检查相同请求的不同响应
- html - Custom Filter for ng-table for a column with two or more properties
- android - Android - recycler view scroll to position doesn't work
- excel - 在 VBA 中使用 Excel 内置的“我的表有标题”功能
- apache - Apache LoadBalancing:健康检查的 SSL/TLS 设置
- android - FFMpeg drawtext not working in my code
- c# - 单击按钮时打开 WPF 弹出窗口
- ios - 在 12 小时制时间设备中使用 Date()
- python - 获取 obj 属性的值,知道它的名称
- javascript - 如何获得垂直滚动的页面长度并将其添加到某些东西?