本文整理汇总了PHP中Kdyby\Doctrine\EntityManager::persist方法的典型用法代码示例。如果您正苦于以下问题:PHP EntityManager::persist方法的具体用法?PHP EntityManager::persist怎么用?PHP EntityManager::persist使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Kdyby\Doctrine\EntityManager
的用法示例。
在下文中一共展示了EntityManager::persist方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processImage
/**
* @param FileUpload $file
* @return Image
* @throws NotImageUploadedException
* @throws FileSizeException
* @throws DBALException
* @throws InvalidStateException
*/
public function processImage(FileUpload $file)
{
if (!$file->isImage()) {
throw new NotImageUploadedException();
}
if (\filesize($file->getTemporaryFile()) > Image::MAX_FILE_SIZE) {
throw new FileSizeException();
}
try {
$this->em->beginTransaction();
$image = new Image($file);
$this->em->persist($image)->flush();
$file->move($this->composeImageLocation($image));
$this->em->commit();
} catch (InvalidStateException $is) {
$this->em->rollback();
$this->em->close();
$this->logger->addError('Error occurs while moving temp. image file to new location.');
throw $is;
} catch (DBALException $e) {
$this->em->rollback();
$this->em->close();
$this->logger->addError('Image error');
// todo err message
throw $e;
}
return $image;
}
示例2: sendMessage
/**
* @param SentMessage $message
* @param array $recipients
* @return ReceivedMessage[]
* @throws \Exception
*/
public function sendMessage(SentMessage $message, array $recipients)
{
$receivedMessages = [];
try {
$this->em->beginTransaction();
$this->em->persist($message);
foreach ($recipients as $recipient) {
if (!$recipient instanceof User) {
throw new InvalidArgumentException('Argument $recipients can only contains instances of ' . User::class);
}
$m = $receivedMessages[$recipient->getId()] = new ReceivedMessage($message, $recipient);
$this->em->persist($m);
//if (count($receivedMessages) % 5 === 0) { // todo
// $this->em->flush();
// $this->em->clear();
//}
}
$this->em->flush();
$this->em->commit();
} catch (\Exception $e) {
$this->em->rollback();
$this->em->close();
$this->onError('Message sending failed.', $e, self::class);
throw $e;
}
return $receivedMessages;
}
示例3: linkUrls
/**
* @param Url $oldUrl
* @param Url $newUrl
* @return void
* @throws \Exception
*/
public function linkUrls(Url $oldUrl, Url $newUrl)
{
if ($oldUrl->getId() === null or $newUrl->getId() === null) {
throw new UrlNotPersistedException();
}
try {
$this->em->beginTransaction();
$alreadyRedirectedUrls = $this->findByActualUrl($oldUrl->getId());
/** @var Url $url */
foreach ($alreadyRedirectedUrls as $url) {
$url->setRedirectTo($newUrl);
$this->em->persist($url);
$this->cache->clean([Cache::TAGS => [$url->getCacheKey()]]);
}
$oldUrl->setRedirectTo($newUrl);
$this->em->persist($oldUrl);
$this->cache->clean([Cache::TAGS => [$oldUrl->getCacheKey()]]);
$this->em->flush();
$this->em->commit();
} catch (\Exception $e) {
$this->em->rollback();
$this->em->close();
throw $e;
}
}
示例4: save
/**
* @param array $values
* @return Comment
* @throws ActionFailedException
*/
public function save(array $values)
{
$numberOfComments = $this->getNumberOfComments($values['page']);
$repliesReferences = $this->findRepliesReferences($values['text']);
try {
$this->em->beginTransaction();
// no replies references found
if (empty($repliesReferences)) {
$comment = new Comment($values['author'], $this->texy->process($values['text']), $values['page'], $numberOfComments + 1, $this->request->getRemoteAddress());
$this->em->persist($comment)->flush();
$this->em->commit();
return $comment;
}
$commentsToReply = $this->findCommentsToReply($values['page'], $repliesReferences);
$values['text'] = $this->replaceReplyReferencesByAuthors($values['text'], $commentsToReply);
$comment = new Comment($values['author'], $this->texy->process($values['text']), $values['page'], $numberOfComments + 1);
$this->em->persist($comment);
/** @var Comment $comment */
foreach ($commentsToReply as $commentToReply) {
$commentToReply->addReaction($comment);
$this->em->persist($commentToReply);
}
$this->em->flush();
$this->em->commit();
} catch (\Exception $e) {
$this->em->rollback();
$this->em->close();
throw new ActionFailedException();
}
return $comment;
}
示例5: assignAlbums
/**
* @param User $user
* @param array $albums
*/
public function assignAlbums(User $user, array $albums)
{
$user->albums->clear();
$user->setAlbums($albums);
$this->em->persist($user);
$this->em->flush();
}
示例6: save
public function save($entity, $immediately = true)
{
$this->em->persist($entity);
if ($immediately) {
$this->em->flush();
}
}
示例7: switchEntities
/**
* @param $entity1
* @param $entity2
*/
private function switchEntities($entity1, $entity2)
{
$x = $entity1->priority;
$entity1->priority = $entity2->priority;
$entity2->priority = $x;
$this->entityManager->persist($entity1, $entity2);
$this->entityManager->flush();
}
示例8: addDefinition
/**
* @param Privilege $privilege
* @param Role $role
* @return $this
*/
public function addDefinition(Privilege $privilege, Role $role)
{
$accessDefinition = new AccessDefinition($this->resource, $privilege);
$this->em->persist($accessDefinition);
$permission = new Permission($role, $this->resource, $privilege);
$this->em->persist($permission);
return $this;
}
示例9: logDb
private function logDb($message, $status = NULL, $consumerTitle = NULL)
{
$log = new RmqLogConsumer();
$log->consumerTitle = $consumerTitle;
$log->message = $message;
$log->status = $status;
$this->em->persist($log);
$this->em->flush();
}
示例10: addGenre
public function addGenre(string $name)
{
if ($this->genreExists($name)) {
return;
}
$genre = new Genre($name);
$this->entityManager->persist($genre);
$this->entityManager->flush($genre);
}
示例11: saveSearch
/**
* @param string $searchString
* @return Search
*/
public function saveSearch($searchString)
{
if ($search = $this->search(Strings::webalize($searchString))) {
return $search;
}
$search = new Search($searchString);
$this->entityManager->persist($search);
$this->entityManager->flush($search);
return $search;
}
示例12: saveUser
/**
* @param User $user
* @return User
* @throws \Exception
*/
public function saveUser(User $user)
{
try {
$this->em->persist($user)->flush();
return $user;
} catch (\Exception $e) {
$this->onError(sprintf('Saving of user "%s" #id(%s) failed', $user->username, $user->getId()), $e, self::class);
throw $e;
}
}
示例13: delete
/**
* @param $albumId
*/
public function delete($albumId)
{
/**
* @var Album $album
*/
$album = $this->albumDao->find($albumId);
$album->delete();
$this->em->persist($album);
$this->em->flush();
}
示例14: saveListing
/**
* @param Listing $listing
* @return Listing
* @throws \Exception
*/
public function saveListing(Listing $listing)
{
try {
$this->em->persist($listing)->flush();
return $listing;
} catch (\Exception $e) {
$this->onCritical('Saving of Listing failed. [saveListing]', $e, self::class);
throw $e;
}
}
示例15: update
public function update($entityClass, array $items)
{
$position = 1;
foreach ($items as $id) {
$entity = $this->em->find($entityClass, $id);
$entity->setPosition($position * 10);
$this->em->persist($entity);
$position++;
}
$this->em->flush();
}