0

単純なフィクスチャを起動できません。バンドルを正しい方法でインストールし、ここに記載されているように autoload.php と Appkernel.php に 2 行を配置し、次のようにフィクスチャ クラスを作成しました。

<?php

namespace ABCBundle\DataFixtures\ORM;

use Doctrine\Common\DataFixtures\FixtureInterface;
use ABCBundle\Entity\Rubrica;

class LoadRubricaData implements FixtureInterface
{
    public function load(ObjectManager $manager)
    {
        $rubrica = new Rubrica();
        $rubrica->setX("XXX");
        $manager->persist($rubrica);
        $manager->flush();
    }
}
?>

しかし、CLIから起動しようとすると

php アプリ/コンソール doctrine:fixtures:load

私は得る:

致命的なエラー: ABCBundle\DataFixtures\ORM\LoadRubricaData::load() の宣言は、[...]ABCBundle/DataFixtures/ORM/LoadRubricaData.php の Doctrine\Common\DataFixtures\FixtureInterface::load() の宣言と互換性がある必要があります10行目

しかし、そのインターフェースを見てみると、それが正しいことがわかります。

interface FixtureInterface
{
    /**
     * Load data fixtures with the passed EntityManager
     *
     * @param Doctrine\Common\Persistence\ObjectManager $manager
     */
    function load(ObjectManager $manager);
}

どうしたの?

4

1 に答える 1

1

くそー、行を追加するのを忘れた

use Doctrine\Common\Persistence\ObjectManager;
于 2012-05-24T07:35:41.933 に答える