Я собираюсь построить функцию расширенного поиска в laravel 5. Я запросил из таблицы 'itemregistrations', отфильтровав несколько полей, таких как negeriID, categoryID и operasiID.Мне нужно сделать массив карт, чтобы рассчитать возрастное значение каждого элемента и положить в массив.Получение значений с использованием таблицы регистрации элементов и расчета возраста работает нормально, но это затрудняет поиск в операторе 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...
Как включить поиск по списку массивов?