当我尝试保存或更新模型时,对于字段spid_id,我收到的错误如下。我不确定有什么问题。
常规错误:1366错误的整数值:''对于列&spid_id' 在第1行(SQL:更新
magazines
设置spid_id
=,updated_at
= 2016-10-21 08:28:46,summary
=其中id
= 8)
这就是我的表格:
Schema::create('magazines', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('visual_id')->nullable();
$table->integer('spid_id')->nullable();
$table->timestamps();
});
我试图通过迁移来改变我的spid_id在数据库中不可为空,因为我认为这可能是一个原因:
Schema::table('magazines', function (Blueprint $table) {
$table->integer('spid_id')->change();
});
但该领域仍然可以为空。
这是我创建表单的商店功能:
$magazine = Magazine::create([
'name' => $request->input('name'),
'visio_link_prefix' => $request->input('visio_link_prefix'),
'spid_id' => $request->input('spid_id'),
'summary' => $request->input('summary'),
]);
答案 0 :(得分:1)
在保存之前,您需要检查请求中是否存在spid_id
。例如,在您的情况下,它将如下所示:
'spid_id' => $request->has('spid_id') ? $request->input('spid_id') : NULL,
答案 1 :(得分:1)
创建记录的另一种方法是使用雄辩的对象
$magazine = new Magazine
$magazine->name = $request->input('name');
$magazine->visio_link_prefix = $request->input('visio_link_prefix')
$magazine->spid_id = $request->input('spid_id', null);
$magazine->summary = $request->input('summary');
$magazine->save();
这将确保它自动指定您在模型中指定的空值或默认值。