Пример #1
0
 private function addFilters(ResourceQueryBuilder $builder, array $criteria, array $roles = null)
 {
     if ($roles) {
         $builder->whereHasRoleIn($roles);
     }
     $filterMethodMap = array('types' => 'whereTypeIn', 'roots' => 'whereRootIn', 'dateFrom' => 'whereDateFrom', 'dateTo' => 'whereDateTo', 'name' => 'whereNameLike', 'isExportable' => 'whereIsExportable');
     $allowedFilters = array_keys($filterMethodMap);
     foreach ($criteria as $filter => $value) {
         if ($value !== null) {
             if (in_array($filter, $allowedFilters)) {
                 $builder->{$filterMethodMap[$filter]}($value);
             } else {
                 throw new UnknownFilterException("Unknown filter '{$filter}'");
             }
         }
     }
     return $builder;
 }