コード例 #1
0
ファイル: GroupRepository.php プロジェクト: TorchSK/woofyard
 public function search($filters, $sortBy, $sortOrder, $paginate = 1)
 {
     if ($paginate == NULL) {
         $paginate = true;
     }
     $table = 'groups';
     $result = $this->model->leftjoin('group_user', 'group_user.group_id', '=', $table . '.id')->where(function ($query) use($filters, $sortBy, $sortOrder) {
         foreach ((array) $filters as $key => $temp) {
             if ($filters[$key]) {
                 if ($key == 'name') {
                     $query->whereRaw("name like '%" . $filters[$key]['item0'] . "%'");
                 } else {
                     $query->whereIn($key, array($filters[$key]));
                 }
             }
         }
     })->orderBy($sortBy, $sortOrder)->groupBy($table . '.id');
     if ($paginate) {
         return $result->paginate(10, [$this->model->getTable() . '.*', DB::raw('count(group_user.group_id) as members_count')]);
     } else {
         return $result->get([$this->model->getTable() . '.*', DB::raw('count(group_user.group_id) as members_count')]);
     }
 }