【发布时间】:2012-02-15 14:58:48
【问题描述】:
我正在创建一个需要加载函数的 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);
}
【问题讨论】:
标签: php symfony doctrine-orm