У меня есть необходимость в цепочках выбора в моем проекте Zend Framework: Страны-> Регионы-> Провинции-> Города.
Я использую форму Zend и намереваюсь повторно отправить для перезагрузки содержимогоцепочки выбора, когда один из них изменен.Я написал некоторый код в тесте PHPunit для имитации того, что мне понадобится в моих контроллерах.Мне потребуется использовать эту региональную структуру в нескольких различных формах на моем сайте, а также планирую улучшить с помощью AJAX.
Я не хочу дублировать этот код, поэтому где я должен его хранить и как он должен быть структурирован, чтобы я мог повторно использовать его функциональность.Я подумал, что, возможно, помощник по действиям?
public function testCanGetRegionalStructureFromUser() {
$user = new \Entities\User;
$user = $this->em->getRepository('Entities\User')->findOneByEmail('testuser@yahoo.com');
$town = new \Entities\Town;
$town = $user->getTowns_id();
// if user has not town input, then use the default
if (is_null($town)) {
$config = Zend_Registry::get('config');
$defaulttownid = $config->towns->defaultid;
$town = $this->em->getRepository('Entities\Town')->find($defaulttownid);
}
// get the town id
$townid = $town->getId();
//get the province
$province = $town->getProvinces_id();
$provinceid = $province->getId();
//get the region
$region = $province->getRegions_id();
$regionid = $region->getId();
//get the country
$country = $region->getCountries_id();
$countryid = $country->getId();
$countrylist = $this->em->getRepository('Entities\country')->findActiveCountries();
$regionlist = $this->em->getRepository('Entities\Region')->findActiveRegions($countryid);
$provincelist = $this->em->getRepository('Entities\Province')->findActiveProvinces($regionid);
$townlist = $this->em->getRepository('Entities\Town')->findActiveTowns($provinceid);
}
список стран, список регионов и т. Д. Готовы ввести в мою форму в качестве параметров, которые будут использоваться для заполнения полей выбора.