/** * просмотр списка и добавление напитков */ public function indexAction() { // создаём форму добавления напитка $form = new Application_Form_Beverages(); // т.к. мы добавляем напиток, удаляем поле id $form->removeElement('id'); // если есть данные, переданные с помощью метода POST, if ($this->getRequest()->isPost()) { $request = $this->getRequest(); // и если они валидны, сохраняем напиток и добавляем документ для поиска в поисковый индекс if ($form->isValid($request->getPost())) { $beverage = new Application_Model_Beverages($form->getValues()); $beverage = $this->beverages->save($beverage); // вообще — это не очень правильно добавлять документы в поиск сразу после их добавления в базу. // лучше пользоваться плановым добавлением (например, раз в 2 часа) $searchDoc = new Application_Model_SearchDoc(); $searchDoc->setId($beverage->id)->setContent($beverage->description)->setTitle($beverage->name)->setType('beverage'); $search = new Application_Model_Search(); $search->addToIndex($searchDoc); // добавляем сообщение об удачном добавлении $this->_flashMessenger->addMessage('Напиток ' . $beverage->getName() . ' добавлен'); // направляемся на дефолтный экшн контроллера return $this->_helper->redirector('index'); } } // получаем список всех напитков и передаём в вид $this->view->entries = $this->beverages->fetchAll(); $this->view->form = $form; }