gpt4 book ai didi

Nelmio Alice 的 Symfony 4 Fixtures 不持久

转载 作者:行者123 更新时间:2023-12-02 15:47:41 28 4
gpt4 key购买 nike

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

当我运行 bin/consoledoctrine: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/DataFixtures/ORM/LoadFixtures.php

namespace App\DataFixtures\ORM;

use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Nelmio\Alice\Loader\NativeLoader;


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

}
}

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 的文档中没有任何关于如何保存数据的信息。 https://github.com/nelmio/alice#table-of-contents

如何确保数据得到持久化?

最佳答案

    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 发生了很大变化。

关于Nelmio Alice 的 Symfony 4 Fixtures 不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48230652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com