【发布时间】:2016-01-14 20:37:58
【问题描述】:
我一直是 LoadAdvert 类上的 ContainerAwareInterface,因此我可以调用并使用 EntityManager 来检索数据库中的用户。
但是,当执行 php bin/console dictionary:fixtures:load 时,实体管理器只检索一个空数组,就好像 db 中没有用户一样。
<?php
// src/OC/PlatformBundle/DataFixtures/ORM/LoadCategory.php
namespace OC\PlatformBundle\DataFixtures\ORM;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use OC\PlatformBundle\Entity\Advert;
use OC\UserBundle\Entity\User;
class LoadAdvert implements FixtureInterface, ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
// Dans l'argument de la méthode load, l'objet $manager est l'EntityManager
public function load(ObjectManager $manager)
{
$em = $this->container->get('doctrine.orm.entity_manager');
$author = $em->getRepository('OCUserBundle:User')->findAll();
die(var_dump($author));
【问题讨论】:
-
你想做什么?你知道什么是学说数据固定装置吗?
-
我正在尝试获取所有用户并在将它们插入数据库之前使用它们来补充我的广告。
-
你的课程应该扩展
use Symfony\Bundle\FrameworkBundle\Controller\Controller;? -
如果您添加一个用户夹具或在此夹具中创建用户,您将获得更好的服务 - 这将进一步将您的测试与您的开发和产品数据库分开。
-
我在考虑这个,geoB。问题是我正在使用 FOSUserBundle 并且不知道如何为它创建数据固定装置。
标签: php symfony doctrine-orm doctrine