1366不正确的整数值:Laravel 4

时间:2015-02-06 14:01:43

标签: php laravel laravel-4 migration

我不断获得Incorrect integer value: '' for column 'stock'

enter image description here

以下是我迁移stock

的方式

$table->integer('stock')->nullable()->default(0)->unsigned();

以下是我如何抓住它存入库存

$inventory->stock = $value[2]; //某些数据是''=空字符串

有没有办法为它设置默认值? 如何停止此错误消息?

2 个答案:

答案 0 :(得分:1)

只需将值转换为整数即可。我个人最喜欢铸造:

$inventory->stock = (int) $value[2];

但是,您也可以使用intval($value[2])或添加零:$value[2] + 0

如果您不想在控制器中担心它,请在模型中创建一个mutator:

public function setStockAttribute($value){
    $this->attributes['stock'] = (int) $value;
}

你可以像以前一样分配它:

$inventory->stock = $value[2];

答案 1 :(得分:0)

在尝试保存之前检查数据。从您的示例中,您看起来在字符串中将有一个整数值,因此您可以执行以下操作:这样:

$inventory->stock = ctype_digit($value[2]) ? $value[2] : 0;

如果不是0,则为null或其他一些默认值。

如果您确定值为空字符串或整数:

,甚至可以这样做
$inventory->stock = $value[2] ?: 0;

如果你没有股票,你也可能只是不添加股票,因为你有一个默认的列。