Мне нужно сделать что-то вроде этого:
10
записей в таблицу с именами test0
'-' test9
').category0
"0" - " category9
".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();
}
}
Любая идея, как это сделать правильно?
Я думаю, вам не хватает этого:
Вы не используете 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;
}
Load fixtures (add 10 records....
где вы это добавляете?