РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
2 of 258 menu

Метод persist

Метод persist класса EntityManager переводит сущность в состояние managed и планирует её вставку в базу данных. Первым параметром передаётся объект сущности. Сам по себе метод не выполняет SQL-запрос, а лишь регистрирует сущность для последующего сохранения. Непосредственная запись в базу происходит при вызове метода flush. Если сущность уже управляется менеджером, повторный вызов persist ничего не меняет.

Синтаксис

$em->persist($entity);

Пример

Давайте создадим сущность и сохраним её в базу данных:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function create(EntityManagerInterface $em): Response { $article = new Article(); $article->setTitle('hello'); $article->setText('abcde'); $em->persist($article); $em->flush(); return new Response('saved id: ' . $article->getId()); } } ?>

Результат выполнения кода:

saved id: 1

Пример

Давайте сохраним сразу несколько сущностей за один вызов flush:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function createMany(EntityManagerInterface $em): Response { $titles = ['abcde', 'article', 'user', 'hello']; foreach ($titles as $title) { $article = new Article(); $article->setTitle($title); $article->setText('text'); $em->persist($article); } $em->flush(); return new Response('saved ' . count($titles) . ' articles'); } } ?>

Результат выполнения кода:

saved 4 articles

Смотрите также

  • класс EntityManager,
    который управляет сущностями Doctrine
  • метод flush,
    который выполняет запись изменений в базу данных
  • метод remove,
    который помечает сущность на удаление
  • метод find,
    который находит сущность по первичному ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить