예제 #1
0
 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;
 }