function get_streets($args = null) { //проверяем данные if (empty($_POST["code"])) { return array("error" => "Не указан код города или населенного пункта"); } $code = $_POST["code"]; //загружаем информацию о таблице для данного региона $regions = GeoRegion::findByREGIONCODE(array("fields" => "STREETTABLE", "value" => intval(substr($code, 0, 2)))); if (empty($regions)) { return array("error" => "Не удалось определить регион"); } $rows = array(); $hand_enter = 1; if ($regions[0]->STREETTABLE != null) { GeoStreet::setTableName("_" . $regions[0]->STREETTABLE); $args = array("fields" => array("CODE", "FORMALNAME", "SHORTNAME"), "where" => "`AOLEVEL` = 7", "order" => array("FORMALNAME"), "value" => substr($code, 0, 11) . "%"); $rows = GeoStreet::findByCODE($args); $hand_enter = 0; } $res = array(); foreach ($rows as $row) { $res[] = array("code" => $row->CODE, "name" => $row->FORMALNAME . " " . $row->SHORTNAME . "."); } return array("success" => array("hand_enter" => $hand_enter, "res" => $res)); }
public static function setTableName($name) { if (!is_string($name)) { throw new InvalidArgumentException(get_called_class() . ' - ' . __FUNCTION__ . ': Invalid argument name'); } self::$tableName = 'geo_street' . $name; }