【发布时间】:2019-05-21 16:52:44
【问题描述】:
我将在 laravel 5 中构建高级搜索功能。我通过过滤 negeriID、categoryID 和operasiID 等几个字段从“itemregistrations”表中查询。我需要做数组映射来计算每个项目的年龄值并放入数组中。通过使用 itemregistration 表获取值并计算年龄运行正常,但在搜索 if 语句时出现问题。它无法通过集合中的数组搜索和检索值。
$newitem = DB::table('itemregistrations')
->select('itemregistrations.*')
->get();
//added code to get 'age' value:
$newitem->map(function ($detail) {
$detail->age = \Carbon\Carbon::createFromFormat('Y',$detail->lahir_yy)->diffInYears();
return $detail;
});
if ($request->has('negeri_lahir')) {
$newitem->where('NegeriID', '==', $request->negeri_lahir);
}
if ($request->has('kategori')) {
$newitem->where('CategoryID', $request->kategori);
}
if ($request->has('pangkat')) {
$newitem->where('OperasiID', $request->pangkat);
}
dd($newitem->get());
由于添加了数组映射的问题,将集合转换为数组值导致此错误。 它正在产生错误:
Type error: Too few arguments to function Illuminate\Support\Collection::get(), 0 passed in C:\xampp\htdocs\
这是 dd($newitem); 集合中的数组列表
#items: array:1123 [▼
0 => {#709 ▶}
1 => {#680 ▶}
2 => {#681 ▶}
3 => {#712 ▶}
Collection {#671 ▼
#items: array:1123 [▼
0 => {#709 ▼
+"ItemRegistrationID": 1
+"COID": 109064
+"FType": ""
+"STNo": "0"
+"RegistrationDate": "2005-12-01"
and more attributes...
如何开启数组列表的搜索功能?
【问题讨论】:
标签: arrays laravel-5 advanced-search searchfiltercollection