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(); }
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; }