【问题标题】:Multi selection bootstrap insert in database Laravel多选引导插入数据库 Laravel
【发布时间】:2019-09-04 15:05:14
【问题描述】:

我正在尝试创建多选引导输出以保存在数据库中,但我在控制器中获得了一个数组,例如 ["6","7"]。我该如何保存?

有 2 个选择意味着必须创建 2 行。

我正在尝试的查询:

$table = Pool_user::updateOrInsert(['pool_id' => [$string1], 'user_id' => $request['id']]);

谁能帮我解决这个问题?

【问题讨论】:

    标签: php mysql laravel eloquent relationship


    【解决方案1】:

    通过直接回答您的问题,您需要使用要输入的值创建一个数组数组。

    类似这样的:

    $array = [];
    foreach($request['pool_ids'] as $pool_id){ //$request['pool_ids'] -> ["6","7"]
       array_push($array, [
          'pool_id' => $pool_id,
          'user_id' => $request['id']
       ]);
    }
    
    $table = Pool_user::insert($array);
    

    但是,考虑到Pool_user 是多对多关系的数据透视表,有一种更好的方法可以做到这一点。 假设在用户模型中,有一个名为 polls() 的关系。

    您可以简单地要求 Eloquent 同步关系:

    $user = User::find($request['id']);
    $user->polls()->sync($request['pool_ids']); //$request['pool_ids'] -> ["6","7"]
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-11
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 2020-08-26
      相关资源
      最近更新 更多