2016-10-21 38 views
0

當我嘗試保存或更新模型時,對於字段spid_id,我得到一個錯誤信息,如下所示。我不知道什麼是錯的。Laravel - 常規錯誤:1366錯誤的整數值

General error: 1366 Incorrect integer value: '' for column 'spid_id' at row 1 (SQL: update magazines set 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(); 
     }); 

我試圖改變我的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

告訴我們你在Laravel更新的地方 –

+0

如果該值爲空,那麼不要設置密鑰。它會嘗試將數據保存爲整數(不含''s)。或者在值周圍添加引號或過濾數組。 –

+0

您能否在發生錯誤的地方張貼代碼?所以代碼更新或保存模型? – boroboris

回答

0

你需要檢查spid_id在您的要求存在你保存它。例如,在你的情況下,它會看起來像:

'spid_id' => $request->has('spid_id') ? $request->input('spid_id') : NULL, 
0

另一種方法來創建一個記錄是用雄辯的對象

$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(); 

這將確保它會自動分配一個空或默認值,你可能已在您的模型中指定。

相關問題