public function createAction() { $user = $this->identity(); $request = $this->getRequest(); $form = new MessageForm(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $data = $form->getData(); $message = new Message($user, $data['subject'], $data['body']); foreach ($data['recipients'] as $recipient) { $receiver = $this->dm->getRepository('User\\Document\\User')->findOneBy(array('id' => $recipient['id'])); $message->setRecipients($recipient); } $this->dm->persist($message); $this->dm->persist($user); $this->dm->flush(); $this->flashMessenger()->addSuccessMessage("Message sent successfully!"); return $this->redirect()->toRoute('user_dashboard/messages'); } else { $this->flashMessenger()->addErrorMessage("There was a problem creating your message! Review the form and try again!"); return $this->redirect()->toRoute('user_dashboard/messages'); } } }
/** * Create a new resource * * @param mixed $data * @return mixed */ public function create($data) { $matches = $this->getEvent()->getRouteMatch(); $params = $matches->getParams(); $author = $this->dm->getRepository('User\\Document\\User')->findOneById($params['uid']); $hydrator = new DoctrineHydrator($this->dm); $form = new MessageForm(); $form->setData($data); if ($form->isValid()) { $message = new Message($author); $newMessage = $hydrator->hydrate($form->getData(), $message); $this->dm->persist($newMessage); $this->dm->flush(); return new JsonModel(['Success' => ['message' => 'Your message was created successfully!', '_link' => $this->url()->fromRoute('api.user.message') . $newMessage['id']]]); } else { return new JsonModel(['Error' => ['message' => 'Invalid Request Object!', 'request' => $data]]); } }
public function getServiceConfig() { return array('factories' => array('AuthService' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $dbTableAuthAdapter = new DbTableAuthAdapter($dbAdapter, 'user', 'email', 'password', 'MD5(?)'); $authService = new AuthenticationService(); $authService->setAdapter($dbTableAuthAdapter); return $authService; }, 'UserTable' => function ($sm) { $tableGateway = $sm->get('UserTableGateway'); $table = new UserTable($tableGateway); return $table; }, 'UserTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new User()); return new TableGateway('user', $dbAdapter, null, $resultSetPrototype); }, 'ListRowTable' => function ($sm) { $tableGateway = $sm->get('ListRowTableGateway'); $table = new ListRowTable($tableGateway); return $table; }, 'ListRowTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new ListRow()); return new TableGateway('list_row', $dbAdapter, null, $resultSetPrototype); }, 'AnimeTable' => function ($sm) { $tableGateway = $sm->get('AnimeTableGateway'); $table = new AnimeTable($tableGateway); return $table; }, 'AnimeTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Anime()); return new TableGateway('anime', $dbAdapter, null, $resultSetPrototype); }, 'MessageTable' => function ($sm) { $tableGateway = $sm->get('MessageTableGateway'); $table = new MessageTable($tableGateway); return $table; }, 'MessageTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Message()); return new TableGateway('message', $dbAdapter, null, $resultSetPrototype); }, 'CommentTable' => function ($sm) { $tableGateway = $sm->get('CommentTableGateway'); $table = new CommentTable($tableGateway); return $table; }, 'CommentTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\\Db\\Adapter\\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Comment()); return new TableGateway('comment', $dbAdapter, null, $resultSetPrototype); }, 'RegisterForm' => function ($sm) { $form = new Form\RegisterForm(); $form->setInputFilter($sm->get('RegisterFilter')); return $form; }, 'RegisterFilter' => function ($sm) { return new Form\RegisterFilter(); }, 'LoginForm' => function ($sm) { $form = new Form\LoginForm(); $form->setInputFilter($sm->get('LoginFilter')); return $form; }, 'LoginFilter' => function ($sm) { return new Form\LoginFilter(); }, 'UserEditForm' => function ($sm) { $form = new Form\UserEditForm(); $form->setInputFilter($sm->get('UserEditFilter')); return $form; }, 'UserEditFilter' => function ($sm) { return new Form\UserEditFilter(); }, 'EditAnimeOnListForm' => function ($sm) { $form = new EditAnimeOnListForm(); $form->setInputFilter($sm->get('EditAnimeOnListFilter')); return $form; }, 'EditAnimeOnListFilter' => function ($sm) { return new EditAnimeOnListFilter(); }, 'MessageForm' => function ($sm) { $form = new Form\MessageForm($sm, 'New ticket'); $form->setInputFilter($sm->get('MessageFilter')); return $form; }, 'MessageFilter' => function ($sm) { return new Form\MessageFilter(); }, 'ReplyForm' => function ($sm) { $form = new Form\ReplyForm(); $form->setInputFilter($sm->get('ReplyFilter')); return $form; }, 'ReplyFilter' => function ($sm) { return new Form\ReplyFilter(); })); }