/** * @param \Address\Model\Book $address * @return null|array */ public function searchAddress(Book $address) { /* @var $dbSql \Zend\Db\Sql\Sql */ $dbSql = $this->getServiceLocator()->get('dbSql'); /* @var $dbAdapter \Zend\Db\Adapter\Adapter */ $dbAdapter = $this->getServiceLocator()->get('dbAdapter'); $select = $dbSql->select(array("address" => self::TABLE_NAME)); if ($address->getCreatedById()) { $select->where(array('address.createdById' => $address->getCreatedById())); } $select->order(array('address.id' => 'DESC')); $select->join(array('c' => CityMapper::TABLE_NAME), 'address.cityId = c.id', array('cityName' => 'nativeName')); $select->join(array('d' => DistrictMapper::TABLE_NAME), 'address.districtId = d.id', array('districtName' => 'name')); $query = $dbSql->buildSqlString($select); $results = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($results->count()) { $addresses = array(); foreach ($results as $result) { $address = new Book(); $row = (array) $result; $address->exchangeArray($row); $addresses[] = $address; } return $addresses; } return null; }
public function indexAction() { $add = new \Address\Model\Book(); $addMapper = $this->getServiceLocator()->get('Address\\Model\\BookMapper'); /* @var $cityMapper \Address\Model\CityMapper */ $cityMapper = $this->getServiceLocator()->get('Address\\Model\\CityMapper'); $city = new \Address\Model\City(); /* @var $districtMapper \Address\Model\DistrictMapper */ $districtMapper = $this->getServiceLocator()->get('Address\\Model\\DistrictMapper'); $district = new \Address\Model\District(); $districts = array(); if (!!($cityId = $this->getRequest()->getPost()->get('cityId'))) { $district->setCityId($cityId); $districts = $districtMapper->fetchAll($district); } /* @var $form \User\Form\Signup */ $form = $this->getServiceLocator()->get('Address\\Form\\Book'); $form->setInputFilter($this->getServiceLocator()->get('Address\\Form\\BookFilter')); $form->setCities($city->toSelectBoxArray($cityMapper->fetchAll())); $form->setDistricts($district->toSelectBoxArray($districts)); $form->bind($add); $viewModel = new ViewModel(); if ($this->params()->fromQuery('layout') == 'false') { $viewModel->setTerminal(true); } if ($this->getRequest()->isPost()) { $form->setData($this->getRequest()->getPost()); $address = new Book(); if ($form->isValid()) { $address->exchangeArray((array) $this->getRequest()->getPost()); $address->setCreatedById($this->user()->getUser()->getId()); $addMapper->saveAddress($address); $this->redirect()->toUrl('/profile'); } } $viewModel->setVariable('form', $form); return $viewModel; }