如何插入多个ID并保存在数据库中

How to insert multi IDs and save in database

我正在使用 Laravel 7 并尝试制作一个自动化系统。
对于发送信件,我必须能够选择几个收件人。

这是来信table:

如你所见,我有 recieve_id
我可以获得 ID,但我不知道如何将 ID 保存在我的数据库中。

这是我的 select:

<select class="col-12 border mt-2 pt-2" multiple="multiple" name="recieve_id[]">
  @foreach($users as $user)
    <option value="{{ $user->id }}">{{ $user->name }}</option>
  @endforeach
</select>

这是我的控制器:

Letter::create([
  'indicator_id' => $request['indicator_id'],
  'sender_id' => auth()->user()->id,
  'recieve_id' => $request['recieve_id'],
  'title' => $request['title'],
  'image' => 'default.png',
  'description' => $request['description'],
  'date' => $request['date'],
  'text' => $request['text'],
]);
return redirect(route('Letter.index'));

编辑:

这是Table结构:

编辑 2:

这是我的字母销毁函数: Destory Function

如果我对你的问题的理解是正确的,那么你在控制器中编写的代码运行不正常或者没有创建数据库条目。对吗?

如果是,那么您能否向我提供您用于 Letter 的 table 结构以及您为该特定 table 编写的迁移?

我不确定,但您似乎传递的是数组 $reciever_id 而不是字符串 and/or JSON 字符串。

此外,如果您提供的屏幕截图中的 table 用作日志,那么我建议遍历 $receiver_id 并为每个接收者创建一个单独的条目如果可能的话。我认为这可能是更好的方法。

编辑: 阅读您的评论后,我正在修改我的答案如下: 在这种情况下,您应该使用 foreach 循环处理请求,如下所示:

$receiver_ids = $request->receive_ids
foreach($receiver_ids as $receiver_id)
{
    Letter::create([
        'indicator_id' => $request['indicator_id'],
        'sender_id' => auth()->user()->id,
        'recieve_id' => $receiver_id,
        'title' => $request['title'],
        'image' => 'default.png',
        'description' => $request['description'],
        'date' => $request['date'],
        'text' => $request['text'],
    ]);
}

将此代码放入您的控制器中。并告诉我。