1366 不正确的整数值:Laravel 4
1366 Incorrect integer value: Laravel 4
我不断收到 Incorrect integer value: '' for column 'stock'
这是我迁移的方式stock
$table->integer('stock')->nullable()->default(0)->unsigned();
以下是我如何抓取它入库
$inventory->stock = $value[2];
// 一些数据是 ''= 空字符串
有没有办法为它设置一个默认值?
如何停止此错误消息?
在尝试保存之前检查数据。从你的例子来看,看起来你将在一个字符串中有一个整数值,所以你可以这样做这个:
$inventory->stock = ctype_digit($value[2]) ? $value[2] : 0;
如果不是 0,则为 null,或其他一些默认值。
如果您确定这些值是空字符串还是整数,甚至可以这样:
$inventory->stock = $value[2] ?: 0;
如果您没有股票,您也可以不添加股票,因为无论如何您都有该列的默认值。
只需将值转换为整数即可。我个人最喜欢选角:
$inventory->stock = (int) $value[2];
但是您也可以使用 intval($value[2])
或添加零:$value[2] + 0
.
如果您不想在控制器中担心它,请在模型中创建一个修改器:
public function setStockAttribute($value){
$this->attributes['stock'] = (int) $value;
}
您可以像以前一样分配它:
$inventory->stock = $value[2];
我不断收到 Incorrect integer value: '' for column 'stock'
这是我迁移的方式stock
$table->integer('stock')->nullable()->default(0)->unsigned();
以下是我如何抓取它入库
$inventory->stock = $value[2];
// 一些数据是 ''= 空字符串
有没有办法为它设置一个默认值? 如何停止此错误消息?
在尝试保存之前检查数据。从你的例子来看,看起来你将在一个字符串中有一个整数值,所以你可以这样做这个:
$inventory->stock = ctype_digit($value[2]) ? $value[2] : 0;
如果不是 0,则为 null,或其他一些默认值。
如果您确定这些值是空字符串还是整数,甚至可以这样:
$inventory->stock = $value[2] ?: 0;
如果您没有股票,您也可以不添加股票,因为无论如何您都有该列的默认值。
只需将值转换为整数即可。我个人最喜欢选角:
$inventory->stock = (int) $value[2];
但是您也可以使用 intval($value[2])
或添加零:$value[2] + 0
.
如果您不想在控制器中担心它,请在模型中创建一个修改器:
public function setStockAttribute($value){
$this->attributes['stock'] = (int) $value;
}
您可以像以前一样分配它:
$inventory->stock = $value[2];