Laravel - 一般错误:1366 不正确的整数值

Mar*_*rco 3 php mysql laravel

当我尝试保存或更新模型时,对于 spid_id 字段,出现以下错误。我不确定出了什么问题。

一般错误:1366 不正确的整数值:第 1 行的列 'spid_id' 的 ''(SQL:更新magazines集spid_id= , updated_at= 2016-10-21 08:28:46, summary= where 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();
        }); 
Run Code Online (Sandbox Code Playgroud)

我试图通过进行迁移将我的 spid_id 更改为在数据库中不可为空,因为我认为这可能是一个原因:

        Schema::table('magazines', function (Blueprint $table) {
            $table->integer('spid_id')->change();
        });
Run Code Online (Sandbox Code Playgroud)

但是该字段仍然可以为空。

这是我创建表单的商店功能:

        $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'),
        ]);
Run Code Online (Sandbox Code Playgroud)

ale*_*jjj 5

spid_id在保存之前,您需要检查您的请求中是否存在。例如,在您的情况下,它看起来像:

'spid_id' => $request->has('spid_id') ? $request->input('spid_id') : NULL,
Run Code Online (Sandbox Code Playgroud)