Doctrine ORM не обновляет объект после flush () в symfony 4 - PullRequest
0 голосов
/ 03 ноября 2019

В проекте Symfony с доктриной ORM у меня есть две сущности: продукт и категория. У них есть отношение ManyToOne (продукт имеет одну категорию, многие продукты могут быть в одной категории).

Я создаю категорию, два продукта и устанавливаю категорию продуктов в одном контроллере.

        $category = new Category();
        $category->setName('Computer Peripherals');

        $product = new Product();
        $product2 = new Product();

        $product->setCategory($category);
        $product2->setCategory($category);

        $entityManager = $this->getDoctrine()->getManager();
        $entityManager->persist($category);
        $entityManager->persist($product);
        $entityManager->persist($product2);
        $entityManager->flush();

        dump($product);
        dump($product2);
        dump($category);
        die;

В другом контроллере я проверяю продукты категорий, которые я создал.

        $repository = $this->getDoctrine()->getRepository(Category::class);

        foreach ($repository->findAll() as $category){
            $products = $category->getProducts();
            $products->initialize();
            dump($products);
        }
        die;

Объект категории, выгруженный в первый контроллер, не имеет массива продуктов, заполненного созданными продуктами, в то время как категорияОбъект второго контроллера имеет два продукта внутри своего массива. Это противоречиво.

...