【问题标题】:Laravel updateOrCreate with increment() methodLaravel updateOrCreate 与 increment() 方法
【发布时间】:2022-11-07 21:39:44
【问题描述】:

我正在尝试更新库存字段或在模型不存在时创建它

雄辩:

\App\Models\MarketingStock::updateOrCreate(
    ['marketing_id' => $attr['marketing_id']],
    ['product_id' => $attr['product_id']],
)->increment('qty',$attr['qty']);

该模型 :

class MarketingStock extends Model
{
    use HasFactory;

    protected $fillable = ['marketing_id','product_id','stock'];
}

结果 :

SQLSTATE[HY000]: General error: 1364 Field 'stock' doesn't have a default value (SQL: insert into `marketing_stocks` (`marketing_id`, `product_id`, `updated_at`, `created_at`) values (2, 1, 2022-11-07 20:21:11, 2022-11-07 20:21:11))

我从这些参考资料中进行了研究: Solution 1 Solution 2

但没有什么对我有用 如何解决这个问题?

【问题讨论】:

  • 最简单的方法可能是修改表,使 stock 的默认值为 0。

标签: php mysql laravel


【解决方案1】:

问题是,您没有设置股票,而在数据库中,股票列不允许有空值。因此,要么您必须将库存列或数量更改为 0 才能开始

【讨论】:

    猜你喜欢
    • 2017-07-30
    • 2019-06-21
    • 2020-08-06
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    相关资源
    最近更新 更多