Symfony 4装置,Nelmio Alice未持续

Symfony 4装置,Nelmio Alice未持续,symfony,doctrine,symfony4,nelmio-alice,alice-fixtures,Symfony,Doctrine,Symfony4,Nelmio Alice,Alice Fixtures,我在Symfony 4中与Alice一起使用数据装置时遇到问题 当我运行bin/console-doctrine:fixtures:load时,我会被询问是否要清除数据库,最终命令会在没有任何错误的情况下终止 数据库被有效清除,但未填充任何数据 我使用的是Symfony 4.0.3、Doctrine Data Fixtures 1.3和Nelmio Alice 3.1.3 src/DataFixtures/ORM/fixtures.yml App\Entity\User: user{1..10}

我在Symfony 4中与Alice一起使用数据装置时遇到问题

当我运行bin/console-doctrine:fixtures:load时,我会被询问是否要清除数据库,最终命令会在没有任何错误的情况下终止

数据库被有效清除,但未填充任何数据

我使用的是Symfony 4.0.3、Doctrine Data Fixtures 1.3和Nelmio Alice 3.1.3

src/DataFixtures/ORM/fixtures.yml

App\Entity\User:
user{1..10}:
    email: '<email()>'
src/Entity/User.php

namespace App\Entity;

use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User implements UserInterface
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    private $id;
    /**
     * @ORM\Column(type="string", unique=true)
     */
    private $email;

    ... and then various getters/setters methods
我怀疑问题在于ObjectManager没有持久化数据。 不幸的是,Nelmio/Alice的文档中没有关于如何持久化数据的任何信息。

如何确保数据得到持久化

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

自第3版以来,Alice发生了很大变化。

太棒了,谢谢!实际上,我已经尝试了持久化对象。但是我没有在objectSet上调用->getObjects()方法,我认为在以前的版本中Alice为您持久化对象,现在您必须手动执行,对吗?
    class LoadFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {
        $loader = new Nelmio\Alice\Loader\NativeLoader();
        $objectSet = $loader->loadFile(__DIR__.'/Fixtures.yml')->getObjects();
        foreach($objectSet as $object) {
            $manager->persist($object);
        }
        $manager->flush();
    }
}