Symfony 4 Fixtures with Nelmio Alice not persisting



我在Symfony 4中使用Alice的数据固定装置时遇到问题。

当我运行bin/console doctrine:fixtures:load时,我被问到是否要清除db,最终命令终止而没有任何错误。

数据库得到有效清除,但不填充任何数据。

我正在使用Symfony 4.0.3,Doctrine Data Fixtures 1.3和Nelmio Alice 3.1.3。

src/DataFixtures/ORM/fixtures.yml

AppEntityUser:
user{1..10}:
    email: '<email()>'

src/DataFixtures/ORM/LoadFixtures.php

namespace AppDataFixturesORM;
use DoctrineBundleFixturesBundleFixture;
use DoctrineCommonPersistenceObjectManager;
use NelmioAliceLoaderNativeLoader;

class LoadFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {
        $loader = new NativeLoader();
        $objectSet = $loader->loadFile(__DIR__.'/fixtures.yml');
    }
}

src/Entity/User.php

namespace AppEntity;
use SymfonyComponentSecurityCoreUserUserInterface;
use DoctrineORMMapping as ORM;
/**
 * @ORMEntity
 * @ORMTable(name="user")
 */
class User implements UserInterface
{
    /**
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     * @ORMColumn(type="integer")
     */
    private $id;
    /**
     * @ORMColumn(type="string", unique=true)
     */
    private $email;
    ... and then various getters/setters methods

我怀疑问题在于数据没有被对象管理器持久化。不幸的是,Nelmio/Alice的文档中没有任何关于如何持久保存数据的信息。https://github.com/nelmio/alice#table-of-contents

如何确保数据持久化?

    class LoadFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {
        $loader = new NelmioAliceLoaderNativeLoader();
        $objectSet = $loader->loadFile(__DIR__.'/Fixtures.yml')->getObjects();
        foreach($objectSet as $object) {
            $manager->persist($object);
        }
        $manager->flush();
    }
}

自版本 3 以来,爱丽丝发生了很大变化。

最新更新