Учение Миграции в Symfony

0

Мне нужно сделать что-то вроде этого:

  1. Загрузите приборы (добавьте 10 записей в таблицу с именами test0 '-' test9 ').
  2. Загружайте миграции и создайте цикл для поиска этих записей, а затем переименуйте их в category0 "0" - " category9 ".
  3. если " changetest0 " был найден раньше - тогда пропустите, если не нашли - затем создайте.

Мой код (я думаю, что это не правильно):

$em = $this->container->get('doctrine.orm.entity_manager');
        for ($i = 0; $i < 10; $i++) {
            $name = 'test' . $i;
            $category = $em->getRepository(Category::class)->findByName($name);
            if (isset($category) && $category == '') {
                $category->setName('category' . $i);
                $em->persist($category);
                $em->flush();
            } elseif ($em->getRepository(Category::class)->findByName('category' . $i)->getName() == 'category' . $i) {
                return;
            } else {
                $category->setName('category' . $i);
                $em->flush();
            }
        }

Любая идея, как это сделать правильно?

  • 0
    Load fixtures (add 10 records.... где вы это добавляете?
Теги:
entity-framework
doctrine

1 ответ

0
Лучший ответ

Я думаю, вам не хватает этого:

Вы не используете EntityManager как service. Используйте $this->getDoctrine()->getManager(); ;

$em = $this->getDoctrine()->getManager();
for ($i = 0; $i < 10; $i++) {
    $name = 'test' . $i;
    $category = $em->getRepository(Category::class)->findByName($name);
    if($category instanceof Category && !is_null($category)){
        $category->setName('category' . $i);
        $em->persist($category);
        $em->flush();
    }
    //After if else you have to set '$category' to 'null'
    $category = null;
}
  • 0
    @Dialkord, спасибо !!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню