本文整理汇总了PHP中Kdyby\Doctrine\EntityManager::flush方法的典型用法代码示例。如果您正苦于以下问题:PHP EntityManager::flush方法的具体用法?PHP EntityManager::flush怎么用?PHP EntityManager::flush使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Kdyby\Doctrine\EntityManager
的用法示例。
在下文中一共展示了EntityManager::flush方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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;
}
示例2: 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;
}
}
示例3: 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;
}
示例4: 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();
}
示例5: addGenre
public function addGenre(string $name)
{
if ($this->genreExists($name)) {
return;
}
$genre = new Genre($name);
$this->entityManager->persist($genre);
$this->entityManager->flush($genre);
}
示例6: 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();
}
示例7: delete
/**
* @param $albumId
*/
public function delete($albumId)
{
/**
* @var Album $album
*/
$album = $this->albumDao->find($albumId);
$album->delete();
$this->em->persist($album);
$this->em->flush();
}
示例8: 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;
}
示例9: 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();
}
示例10: saveEntity
/**
* Save entity into DB
*
* @param BaseEntity $baseEntity
* @return BaseEntity
* @throws \Exception
*/
protected function saveEntity(BaseEntity $baseEntity)
{
$isPersisted = UnitOfWork::STATE_MANAGED === $this->entityManager->getUnitOfWork()->getEntityState($baseEntity);
if ($isPersisted) {
$this->entityManager->merge($baseEntity);
} else {
$this->entityManager->persist($baseEntity);
}
$this->entityManager->flush();
return $baseEntity;
}
示例11: deleteTag
/**
* Odstraneni konkretniho tagu
* @param \App\Model\Entities\Tag $tag
* @return boolean
*/
public function deleteTag(Entities\Tag $tag)
{
try {
$this->em->remove($tag);
$result = $this->em->flush();
} catch (\Doctrine\ORM\ORMException $e) {
Debugger::log($e, Debugger::INFO);
$result = FALSE;
}
return $result;
}
示例12: delete
/**
* @param Entity\Event $event
*/
public function delete(Entity\Event $event)
{
foreach ($event->performances as $performance) {
foreach ($performance->children as $child) {
$this->em->remove($child);
}
$this->em->remove($performance);
}
$this->em->remove($event);
$this->em->flush();
}
示例13: remove
/**
* @param Role $role
* @throws ForeignKeyConstraintViolationException
*/
public function remove(Role $role)
{
try {
$roleID = $role->getId();
$this->em->remove($role);
$this->em->flush();
$this->onSuccessRoleRemoval($role, $roleID);
} catch (ForeignKeyConstraintViolationException $e) {
throw $e;
}
}
示例14: removeFile
/**
* @param FileEntityInterface $entity
*/
public function removeFile(FileEntityInterface $entity)
{
--$entity->joints;
if ($entity->joints === 0) {
$this->em->remove($entity);
$this->em->flush();
$this->unlinkFile($this->uploadDir . '/' . $entity->year . '/' . $entity->month . '/' . $entity->name . '.' . $entity->extension);
} else {
$this->em->persist($entity);
$this->em->flush();
}
}
示例15: orderGenre
public function orderGenre(string $genreId, float $price, Address $address)
{
$songEntities = [];
//genre order is order of random song from given genre and setting of given genre as genre to be played when queue is empty
//current genre is saved as genreId in file, because it is simple and fast
$genre = $this->genresManager->getGenre($genreId);
$order = new Order($price, $address, $genre);
$this->entityManager->persist($order);
$songEntities[] = $order;
$song = $this->songsManager->getRandomSong($genre);
$songEntities[] = $this->orderSong($song, $order);
$this->entityManager->flush($songEntities);
}