public static function searchPackages($term, $search_type) { $packages = []; switch ($search_type) { case 'name': $search = self::select('package', 'pkgver', 'repo')->where('package', 'like', "%{$term}%")->where('del', 0)->where('abs', 0)->get(); break; case 'description': $search = self::select('package', 'pkgver', 'repo')->where(function ($q) use($term) { foreach (Files::searchDescriptions($term) as $pkgname) { $q->orWhere('package', $pkgname); } })->where('del', 0)->where('abs', 0)->get(); break; case 'name-description': $search = self::select('package', 'pkgver', 'repo')->where(function ($q) use($term) { foreach (Files::searchDescriptions($term) as $pkgname) { $q->orWhere('package', $pkgname); } })->orWhere('package', 'like', "%{$term}%")->where('del', 0)->where('abs', 0)->get(); break; } foreach ($search as $package) { array_push($packages, ['package' => $package->package, 'pkgver' => $package->pkgver, 'repo' => $package->repo, 'pkgdesc' => Files::getDescription($package->package)]); } return $packages; }