Объявление нагрузки должно быть совместимо с ... FixtureInterface :: load () - PullRequest
1 голос
/ 15 февраля 2012

Я создаю данные Doctrine, которым требуется функция загрузки.Я буквально скопировал метод из FixtureInterface.php, но каким-то образом load () моего прибора отличается.

PHP Fatal error:  Declaration of PastonVerBundle\DataFixtures\ORM\LoadTimeZoneData::load() must be compatible with that of Doctrine\Common\DataFixtures\FixtureInterface::load() in /var/www/symfony/src/Paston/VerBundle/DataFixtures/ORM/LoadTimeZoneData.php on line 9

Моя загрузка:

<?php

namespace PastonVerBundle\DataFixtures\ORM;

use Doctrine\Common\DataFixtures\FixtureInterface;
use Paston\VerBundle\Entity\TimeZone;

class LoadTimeZoneData 
    implements FixtureInterface {

    function load(ObjectManager $manager) {

        $z = new \TimeZone();
        $z->setName('Timezone');
        $manager->persist($z);
        $manager->flush();
    }

}

?>

Загрузка из FixtureInterface.php

namespace Doctrine\Common\DataFixtures;

use Doctrine\Common\Persistence\ObjectManager;

/**
 * Interface contract for fixture classes to implement.
 *
 * @author Jonathan H. Wage <jonwage@gmail.com>
 */
interface FixtureInterface
{
    /**
     * Load data fixtures with the passed EntityManager
     *
     * @param Doctrine\Common\Persistence\ObjectManager $manager
     */
    function load(ObjectManager $manager);
}

Ответы [ 2 ]

6 голосов
/ 15 февраля 2012

Вы пропали без вести use Doctrine\Common\Persistence\ObjectManager;:

namespace PastonVerBundle\DataFixtures\ORM;

use Doctrine\Common\DataFixtures\FixtureInterface;
use Paston\VerBundle\Entity\TimeZone;
use Doctrine\Common\Persistence\ObjectManager;

class LoadTimeZoneData 
    implements FixtureInterface {

    function load(ObjectManager $manager) {

        $z = new \TimeZone();
        $z->setName('Timezone');
        $manager->persist($z);
        $manager->flush();
    }

}
0 голосов
/ 26 августа 2013

У меня было то же сообщение об ошибке, но с интерфейсом OrderedFixture, а не с FixtureInterface itelf.

В моем случае это не было связано с методом load ().На самом деле я пропустил добавление метода getOrder (), который является обязательным в интерфейсе.

Таким образом, это сообщение об ошибке привело меня к неверной подсказке.Так что остерегайтесь этого иногда:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...