protected static function set_query_info(OOP_ORM_Data $obj, OOP_ORM $finder, $config) { # WHERE if ($config['where']) { $finder->where($config['where']); } # MAPPING if ($config['mapping']) { foreach ($config['mapping'] as $k => $v) { $finder->where($k, $obj->{$v}); } } # 绑定数据 if (isset($config['bind']) && $config['bind']) { $finder->where($config['bind'], $obj->get_data_by_field_name($config['bind'], true)); } if (isset($config['order_by']) && $config['order_by']) { foreach ($config['order_by'] as $k => $v) { $finder->order_by($k, $v); } } # OFFSET if (isset($config['offset']) && $config['offset'] > 0) { $finder->offset($config['offset']); } # GROUP BY if (isset($config['group_by']) && $config['group_by']) { foreach ($config['group_by'] as $item) { $finder->group_by($item); } } # ORDER BY if (isset($config['order_by']) && $config['order_by']) { foreach ($config['order_by'] as $key => $item) { $finder->order_by($key, $item); } } # IN if (isset($config['in']) && $config['in']) { foreach ($config['in'] as $key => $item) { $finder->in($key, $item); } } # LIMIT if (isset($config['limit']) && $config['limit']) { $finder->limit($config['limit']); } # LIKE if (isset($config['like']) && $config['like']) { $finder->like($config['like']); } # HAVING if (isset($config['having']) && $config['having']) { $finder->having($config['having']); } # 支持扩展所有的方法 if (isset($config['other']) && $config['other']) { foreach ($config['other'] as $argv) { $k = array_pop($argv); call_user_func_array(array($finder, $k), $argv); } } }