Example #1
0
 public function persist(UserMetaModelInterface $userMeta)
 {
     $em = $this->getEntityManager();
     $this->events()->trigger(__FUNCTION__ . '.pre', $this, array('userMeta' => $userMeta, 'em' => $em));
     $userMeta->setUser($em->merge($userMeta->getUser()));
     $em->persist($userMeta);
     $this->events()->trigger(__FUNCTION__ . '.post', $this, array('userMeta' => $userMeta, 'em' => $em));
     $em->flush();
 }
Example #2
0
 public function persist(UserMetaModelInterface $userMeta, $mode = 'insert')
 {
     $data = new ArrayObject(array('user_id' => $userMeta->getUser()->getUserId(), 'meta_key' => $userMeta->getMetaKey(), 'meta' => $userMeta->getMetaRaw()));
     $this->events()->trigger(__FUNCTION__ . '.pre', $this, array('data' => $data, 'userMeta' => $userMeta));
     $db = $this->getWriteAdapter();
     if ('update' === $mode) {
         $db->update($this->getTableName(), (array) $data, $db->quoteInto('user_id = ? AND ', $userMeta->getUser()->getUserId()) . $db->quoteInto('meta_key = ?', $userMeta->getMetaKey()));
     } elseif ('insert' === $mode) {
         $db->insert($this->getTableName(), (array) $data);
     }
     return $userMeta;
 }