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]]);
     }
 }
Exemple #3
0
 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();
     }));
 }