for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace GeoFixer\models\queries;
use Cake\Database\Connection;
use GeoFixer\models\DatabaseConnection;
/**
* Class AbstractDatabaseQuery
*
* @package GeoFixer\models\queries
*/
class AbstractDatabaseQuery
{
* Address levels в базе ФИАС
const CITY = 4;
const SETTLEMENT = 6;
const STREET = 7;
const KLADR_CODE = 'code';
const FIAS_CODE = 'address_id';
const TITLE = 'title';
* @var Connection::newQuery()
protected $db;
* AbstractDatabaseQuery constructor.
* @uses Connection::newQuery()
public function __construct()
$this->db = DatabaseConnection::connection()->newQuery();
}
* Первые буквы равны
* @param $letters
* @return $this
public function firstLetters($letters)
$this->db = $this->db->andWhere([self::TITLE . ' LIKE' => $letters . '%']);
return $this;
* Код региона равен
* @param $code
public function regionCode($code)
$this->db = $this->db->andWhere(['region_code' => $code]);
* Код КЛАДР равен
public function kladrCode($code)
$this->db = $this->db->andWhere([self::KLADR_CODE => $code]);
* ID родителя равен
* @param $id
public function parentId($id)
$this->db = $this->db->andWhere(['parent_id' => $id]);
* Получаем массив значений
* @return array
public function findAll()
return $this->db->execute()->fetchAll('assoc');
* Получаем одно значение
public function findOne()
return $this->db->execute()->fetch('assoc');