数据库Laravel中的多选引导插入

问题描述 投票:0回答:1

我正在尝试创建多选引导输出以保存在数据库中,但我在我的控制器中获得数组,如["6","7"]我怎么能保存这个。

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

查询我的想法:


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

任何人都可以帮助我解决这个问题吗?

php mysql laravel eloquent relationship
1个回答
0
投票

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

像这样的东西:

$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是一个多对多关系的Pivot表,有一个更好的方法来做到这一点。让我们说在用户模型中,有一个叫做polls()的关系。

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

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

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.