Esempio n. 1
0
 /**
  * создаёт документ поиска
  *
  * @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);
     }
 }