You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel+Filament数据保存报错:SQLSTATE[HY000] 1366整数值错误

问题解决:SQLSTATE[HY000]: 1366 Incorrect integer value 错误

核心原因

你的category_id字段为整数类型,但当前传入的是字符串化的数组值(如'["2"]'),类型完全不匹配导致数据库抛出类型错误。另外,由于你使用category_item中间表,说明item与category是多对多关联,不能直接给category_id字段赋值,需用Laravel多对多关联方法处理。

解决步骤

1. 确认模型多对多关联定义

先确保Item和Category模型的关联正确:

// app/Models/Item.php
public function categories()
{
    return $this->belongsToMany(Category::class, 'category_item', 'item_id', 'category_id');
}

// app/Models/Category.php
public function items()
{
    return $this->belongsToMany(Item::class, 'category_item', 'category_id', 'item_id');
}

2. 修正控制器的保存/更新逻辑

不要直接操作category_id字段,改用sync或attach方法处理关联:

// ItemController 中的 store 方法
public function store(Request $request)
{
    $validated = $request->validate([
        'name' => 'required|string',
        // 其他字段验证规则...
        'categories' => 'required|array',
        'categories.*' => 'exists:categories,id' // 验证分类ID合法性
    ]);

    $item = Item::collect($validated);
    $item->categories()->sync($validated['categories']); // 同步分类关联

    return new ItemResource($item);
}

// ItemController 中的 update 方法
public function update(Request $request, Item $item)
{
    $validated = $request->validate([
        'name' => 'sometimes|required|string',
        // 其他字段验证规则...
        'categories' => 'sometimes|required|array',
        'categories.*' => 'exists:categories,id'
    ]);

    $item->update($validated);
    if (isset($validated['categories'])) {
        $item->categories()->sync($validated['categories']); // 更新分类关联
    }

    return new ItemResource($item);
}

3. 调整前端传参格式

确保前端传递的categories是纯数组(如[2,3]),而非字符串化的数组(如'"["2"]"')。若使用Vue/React等框架,避免手动将数组转为JSON字符串后再传递。

4. 清理冗余字段

如果你的item表中存在category_id字段,直接删除该字段——多对多关联无需在主表存储关联ID,所有关联关系都存储在category_item中间表中,这是常见的设计误区。

验证

完成上述修改后重新测试:

  • 前端传递categories: [2]格式的数组参数
  • 后端会自动在category_item表中创建item_id与category_id的关联记录
  • 类型不匹配的SQL错误将不再出现

内容的提问来源于stack exchange,提问作者Mohamed Humaam Athif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:45:56