public function createAction() { $this->logger->entering(); $this->logger->info('Building Line Item'); $lineItem = array('user_id' => $this->session->user_id, 'item_id' => $this->_getParam('id'), 'shipping' => 1); // TODO: handle item validity with exceptions $this->logger->info('Ensure line item is valid'); $validity = LineItem::isValid($lineItem); if (!$validity) { $this->logger->err('Invalid line item'); $this->flash->notice = 'Couldn\'t add item to shopping bag'; foreach ($lineItem['errors'] as $k => $v) { $this->flash->notice = $this->flash->notice . ", {$k} {$v}"; } $this->_redirect('/transactions/new'); $this->logger->info('Clearing flash notice'); $this->flash->keep = 1; unset($this->flash->notice); } else { $this->logger->info('Persisting line item'); $lineItems = new LineItem(); $lineItem = $lineItems->createRow($lineItem); $lineItem->save(); $this->logger->info('Redirecting to new Transaction'); $this->_redirect("/transactions/new"); } $this->logger->exiting(); }