コード例 #1
0
ファイル: search.php プロジェクト: jvillasante/cubanartjb
 public static function search_users($q)
 {
     $cleaner = new Cleaner();
     $cleaned_array = $cleaner->parseString($q);
     $stemmed_array = array_map('PorterStemmer::Stem', $cleaned_array);
     $users = User::with('metadata')->distinct();
     $users = $users->where(function ($query) use($stemmed_array) {
         $query->where('username', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('username', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $users = $users->or_where(function ($query) use($stemmed_array) {
         $query->where('email', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('email', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $users = $users->order_by('created_at', 'DESC');
     $users = $users->paginate(Config::get('smarttoys.records_per_page'));
     return array(implode(' ', $cleaned_array), $users);
 }