public static function viewInformation($request) { $fields = Field::groupBy('category_label')->get(); $information = DB::table('fields')->join('information', function ($join) use($request) { $join->on('fields.id', '=', 'information.field_id')->where('fields.category_label', '=', $request->get('categoryLabel'))->where('information.value', 'LIKE', '%' . $request->get('filter') . '%'); })->join('devices', function ($join) { $join->on('devices.id', '=', 'information.device_id'); })->join('categories', function ($join) { $join->on('categories.id', '=', 'devices.category_id'); })->select('information.*', 'fields.*', 'devices.*', DB::raw('inv_devices.name as "device_name"'), DB::raw('inv_devices.slug as "device_slug"'), 'categories.*', DB::raw('inv_categories.name as "category_name"'), DB::raw('inv_categories.slug as "category_slug"'))->paginate(25); $information->setPath('information'); return view('field.index', compact('fields', 'information')); }