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

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

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

这里是Letter表: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

php database laravel multi-select laravel-7
1个回答
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'],
    ]);
}

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

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