我需要鏈接選擇框在我的zend框架項目:國家 - >地區 - >省 - >城鎮。Zend框架動作助手或其他東西?
我正在使用zend表單並打算在其中一個被更改時重新提交以重新加載鏈接選擇框的內容。我已經在PHPunit測試中編寫了一些代碼來模擬我在控制器中需要的內容。 我將需要在我的網站上以多種不同形式使用此區域結構,並計劃使用AJAX進行增強。
我不想重複這段代碼,所以我應該在哪裏存儲它,以及它應該如何構造以便我可以重用它的功能。我想也許是一個行動幫手?
public function testCanGetRegionalStructureFromUser() {
$user = new \Entities\User;
$user = $this->em->getRepository('Entities\User')->findOneByEmail('[email protected]');
$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);
}
countrytrist,regionlist等準備好注入到我的表單中,作爲將用於填充選擇框的選項。
感謝信息,我可能會使用複合元素後來在我的項目,但我可能會在這種情況下使用的動作助手。 – dimbo 2012-01-16 15:19:36
好吧,你可能想使用視圖助手,而不是一個從視圖中調用視圖助手通常輸出HTML或視圖邏輯,在控制器中使用動作助手將常用功能注入控制器。 – drew010 2012-01-16 20:39:55