如何插入多个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'],
]);
}
将此代码放入您的控制器中。并告诉我。
我正在使用 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'],
]);
}
将此代码放入您的控制器中。并告诉我。