laravel - 我收到此错误“传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须属于该类型
问题描述
当我尝试将数据插入到我的表中时,会发生此错误
传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须是数组类型,给定字符串,在 C:\xampp\htdocs\Portal\vendor\laravel\framew 中调用...
看法
<form method="post" action="{{ route('notice.store') }}">
{{ csrf_field() }}
<div class="form-group">
<label for="Select Group to Post Notice">Select Group to Post Notice </label>
<select class="bg-white text-danger form-control " name='GroupID[]' multiple>
@foreach ($users as $user)
<option value="{{ $user->GroupID }}">{{ $user->GroupID }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="Enter Notice">Enter Notice</label>
<input class="bg-white text-danger p-2 form-control form-control-sm" type="text" name="Notice" placeholder="Enter Notice">
</div>
<input class="btn btn-danger btn-lg px-5" type="submit" name="submit">
</form>
控制器
public function store(Request $request)
{
$member = $request->input('GroupID');
foreach($member as $value) {
$storeInfo = new notice();
$storeInfo->GroupID = $request->input('GroupID');
$storeInfo->Notice = $request->input('Notice');
$storeInfo->save();
}
return redirect('/notice');
}
解决方案
我想你得到这个错误的原因是:
$storeInfo->GroupID = $request->input('GroupID');
$request->input('GroupID')
将返回一个数组 ( name='GroupID[]'
) 而不是一个单独的 id。
由于您已经在遍历组 ID,因此您可以使用以下值GroupId
:
public function store(Request $request)
{
foreach ($request->input('GroupID') as $groupId) {
$storeInfo = new notice();
$storeInfo->GroupID = $groupId; //<--here
$storeInfo->Notice = $request->input('Notice');
$storeInfo->save();
}
return redirect('notice');
}
推荐阅读
- wordpress - 在订单上添加自定义字段作为项目元数据
- sql - 如何在 Hive 中分解数组并创建视图?
- html - 对齐文本并将其环绕在图像旁边
- angular - 如何以角度 2 呈现从 WebAPI 获取的图像
- lua - 在 OpenWRT 上使用 Lighttpd 的 Lua
- excel - 即使在添加或删除行和列之后,VBA 也会引用相同的单元格
- laravel - 使用带参数的 Laravel Excel 导出 .xslx 数据
- javascript - 在使用 Quill.js 保存和重新加载数据时,我有哪些选择?
- python - 如何处理混合大小写正则表达式?
- docker - 如何确保 docker 确认优雅退出?