/** * создаёт документ поиска * * @param Object $row * @return Application_Model_SearchDoc */ private function createSearchDoc($row) { $doc = new Application_Model_SearchDoc(); $doc->setId($row->id)->setTitle($row->name)->setContent($row->description)->setType('beverages'); return $doc; }
/** * удаление напитка */ public function deleteAction() { // получаем id напитка (используется роутер deletebeverages, см. конфиг в /configs/routes.ini) $beverageId = $this->_getParam('beverageId'); if (is_numeric($beverageId)) { $beverage = $this->beverages->find($beverageId); if (null != $beverage) { $form = new Application_Form_DeleteBeverages(); if ($this->getRequest()->isPost()) { $request = $this->getRequest(); if ($form->isValid($request->getPost())) { // если всё в порядке, создаём объект напитка $beverage = new Application_Model_Beverages(); $formValues = $form->getValues(); $beverage->setId($formValues['id']); // удаляем напиток $this->beverages->delete($beverage); // обновляем поисковый индекс (см. примечание к индекс-экшну) $searchDoc = new Application_Model_SearchDoc(); $searchDoc->setId($beverage->id); $search = new Application_Model_Search(); $search->deleteFromIndex($searchDoc); // добавляем сообщение об удачном удалении $this->_flashMessenger->addMessage('Напиток удалён'); return $this->_helper->redirector('index'); } } else { $form->setDefaults(array('id' => $beverage->id)); } $this->view->form = $form; $this->view->beverage = $beverage; } else { throw new Zend_Controller_Action_Exception('beverage not found', 404); } } else { throw new Zend_Controller_Action_Exception('invalid format of beverage id: ' . $bottleId, 404); } }