Exemple #1
0
 public static function generateParams($paramName, $params, $template = '', $paramOptions = [])
 {
     $sql = [];
     $flatParams = [];
     $paramName = preg_replace('/[^\\da-z]/i', '_', $paramName);
     if (is_array($params) && count($params) > 0) {
         foreach ($params as $column => $filter) {
             $param = DataFilter::buildSingleParam($paramName, $column, $filter);
             $sql[] = $param['sql'];
             if (is_array($param['param'])) {
                 foreach ($param['param'] as $key => $value) {
                     $flatParams[$key] = $value;
                 }
             } else {
                 $column = preg_replace('/[^\\da-z]/i', '_', $column);
                 $flatParams[$paramName . "_" . $column] = $param['param'];
             }
         }
     }
     $query = '';
     if (count($sql) > 0) {
         $query = implode(" AND ", $sql);
         if (strpos("[{$paramName}]", $template) !== false) {
             $query = str_replace("[{$paramName}]", $query, $template);
         }
         if ($template == "[{$paramName}]" || $template == '') {
             $query = "where " . $query;
         }
     }
     $template = ['sql' => $query, 'params' => $flatParams];
     return $template;
 }