【问题标题】:how to save data from a multiselect with a foreach in Laravel 8?如何在 Laravel 8 中使用 foreach 从多选中保存数据?
【发布时间】:2021-09-07 07:40:08
【问题描述】:

我需要保存实际上在 vue.js 中的多选数据,但是当我想将数据保存在数据库中时,它会显示以下错误。

SQL: 插入advisor_assignments (advisor_id, category_region_id, updated_at, created_at) 值 (48, ["2,6,4"], 2021-06-23 17:55:38, 2021-06-23 17:55:38)

我的代码

$categorias_ids = $request->category_region_id;

        foreach($request->category_region_id as $r){
            $resep[] = $r;
            advisorAssignment::create([
                'advisor_id' => $advisor->id,
                'category_region_id' => json_encode($resep)
            ]);
        }

【问题讨论】:

  • 你能在数据库表中显示完整的错误 category_region_id 应该是文本数据类型吗?也可以更改 'category_region_id' => json_encode($r)。你也可以显示 advisorAssignment 模型。更好地将该列转换为数组
  • category_region_id 在我的数据库中是整数。但我已经尝试过 json_decode($resep) 并且它也不起作用。
  • 如果它的数组那么你可以通过下面的答案来解决。如果没有,那么你可以 dd(($request->category_region_id) 并发布它

标签: php laravel vue.js laravel-8


【解决方案1】:

试试这个:

$categorias_ids = $request->category_region_id;

    foreach($categorias_ids as $r){
        advisorAssignment::create([
            'advisor_id' => $advisor->id,
            'category_region_id' => $r,
        ]);
    }

【讨论】:

  • 这样它会生成这个错误数据在第 1 行被截断了列 'category_region_id' (SQL:插入到advisor_assignments (advisor_id, category_region_id, updated_at, created_at) 值(67, 2,6,4,5, 2021-06-23 20:10:11, 2021-06-23 20:10:11))
  • 尝试使用explode():$categorias_ids = explode(",", $request->category_region_id);
猜你喜欢
  • 2021-07-19
  • 2021-01-12
  • 2021-09-22
  • 2020-06-15
  • 1970-01-01
  • 2021-08-29
  • 2019-10-27
  • 2023-03-11
  • 2021-12-21
相关资源
最近更新 更多