php - SQLSTATE [HY000]:一般错误:1364 字段“名字”没有默认值(SQL:插入“用户”(“电子邮件”)值(test@test.com))
问题描述
我是 Laravel 框架的新手。
我在迁移用户表时遇到了一个问题。我在我的表的“名字”中添加了可空值,它可以工作,但在“姓氏”列中显示相同的错误。我在每一列中都包含了 nullable(),这不是正确的方法。这个怎么解决??任何人都可以请建议。
用户迁移表,面临“名字”列的问题。 create_user_table.php
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('firstname');
$table->string('lastname');
$table->string('email')->unique();
$table->date('dob');
$table->char('address',100);
$table->bigInteger('phonenumber');
});
}
带有存储 UserController.php 的UserController
public function store(Request $request)
{
$request->validate([
'firstname'=>'required',
'lastname'=>'required',
'email'=>'required',
]);
$user=new User([
$user->firstname=>$request->get('firstname'),
'lastname'=>$request->get('lastname'),
'email'=>$request->get('email'),
'dob'=>$request->get('dob'),
'address'=>$request->get('address'),
'phonenumber'=>$request->get('phonenumber')
]);
$user->save();
return redirect('/users')->with('success','user added');
}
解决方案
实现这一目标的最简单方法是:
public function store(Request $request)
{
$request->validate([
'firstname'=>'required',
'lastname'=>'required',
'email'=>'required',
]);
$user=new User();
$user->firstname = $request->firstname;
$user->lastname = $request->lastname;
$user->email = $request->email;
$user->dob = $request->dob;
$user->address = $request->address;
$user->phonenumber = $request->phonenumber;
$user->save();
return redirect('/users')->with('success','user added');
}
同样在您的模型中,您必须添加此行以进行质量分配
protected $fillable = ['firstname','lastname','email','dob','address','phonenumber'];
您可以查看此链接进行批量分配:https ://laravel.com/docs/7.x/eloquent#mass-assignment
推荐阅读
- html - 无法在卡片的正确位置显示某些元素和文本
- microsoft-teams - Microsoft Teams 自适应卡片 Input.ChoiceSet 默认跨平台
- java - lombok @Data 和 @Getter 不提供 getter 函数
- arrays - 数组作为状态:状态更新使用钩子重新渲染功能组件中的所有子项
- functional-programming - Idris 中的“不可访问的模式变量”
- dji-sdk - 没有收到来自 DJI ROS SDK 的 time_sync_fc_time_utc 消息
- compression - 找出文件每个部分的压缩比
- mysql - 如何在 SQL 表中表示 X 和 Y 轴数据
- azure-data-lake - “GetVersionedSdkPath: Unexpected layout”错误尝试构建 U-SQL 项目
- javascript - Heroku 构建中的 create-react-app 不包含 JavaScript