php - 在php laravel中将两个数组合并为单个数组并在刀片中显示
问题描述
我想根据高校过滤数据,我的查询是
$exams = Exam::where('status', 1);
if ($request->filled('universities')) {
$exams = $exams->whereIn('university_id', $request->universities); //data 1st
}
if ($request->filled('colleges')) {
$exams = $exams->whereIn('college_id', $request->colleges); //data 2nd
}
$exams = $exams->get();
我的表格是
<form action="">
<ul class="list-group list-group-flush">
@foreach($universities as $university)
<li class="list-group-item">
<a href="#">
<label>
<input name='universities[]' onchange="searchExam();"
class="mr-2" type="checkbox"
value='{{$university->id}}'/>
{{$university->name}}
</label>
</a>
</li>
@endforeach
</ul>
<ul class="list-group list-group-flush">
@foreach($colleges as $college)
<li class="list-group-item">
<a href="#">
<label>
<input onchange="searchExam();" name='colleges[]'
class="mr-2" type="checkbox"
value='{{$college->id}}'/>
{{$college->name}}
</label>
</a>
</li>
@endforeach
</ul>
</form>
我的问题是我只获取大学或学院的数据,但我想要的是如果检查了学院和大学选项,我想获取学院和大学的数据。如何将这两个数据合并到一个数组中?
解决方案
您可能希望对学院或大学的地址进行分组。你可以尝试这样的事情:
$exams = Exam::where('status', 1);
if ($request->has('universities', 'colleges')) {
$exams->where(function ($q) use ($request) {
if ($request->input('universities')) {
$q->orWhereIn('university_id', (array) $request->input('universities'));
}
if ($request->input('colleges')) {
$q->orWhereIn('college_id', (array) $request->input('colleges'));
}
});
}
推荐阅读
- magento2 - Magento 2 core_config_data 表无故丢失错误?
- rust - `.map(f)` 和 `.map(|x| f(x))` 有什么区别?
- javascript - Bootstrap 样式在 create-react-app 的生产版本中消失了
- dart - 如何从构造函数初始化程序列表中的常量构造函数访问属性?
- javascript - 打字稿等待返回 Promise 的异步函数
- c# - 表插入后 C# 和 SQL Server Express 和 DataGridView 更新
- c# - 如何在 Xamarin.Forms.Maps 中使用暗模式谷歌地图?
- javascript - javascript 自定义元素构造函数是否共享相同的内存?
- angular - 在聊天星云 UI 中通过 id 获取消息
- azure - 使用 Azure DevOps 在 Windows 映像上运行并行测试时出错