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

时间:2020-04-15 18:03:43

标签: php database laravel multi-select laravel-7

我正在使用Laravel 7并试图制造一个自动化系统。
要发送信件,我必须能够选择一些接收者。

这是信函表: enter image description here

如您所见,我有recieve_id
我可以获取ID,但是我不知道如何在数据库中保存ID。

这是我的选择:

<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'));

编辑:

这是表结构: enter image description here

编辑2:

这是我的字母故事功能: Destory Function

1 个答案:

答案 0 :(得分:0)

如果我对您的问题的理解正确,则您在控制器中编写的代码无法正常运行或无法创建数据库条目。是吗?

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

我不确定,但是似乎您正在传递数组$reciever_id而不是字符串和/或JSON字符串。

此外,如果将您提供的屏幕快照中的表格用作日志,那么我建议循环访问$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'],
    ]);
}

将此代码放在您的控制器中。让我知道。