首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从监听程序获取对存储库的访问

如何从监听程序获取对存储库的访问
EN

Stack Overflow用户
提问于 2014-11-20 03:49:16
回答 2查看 1.6K关注 0票数 0

我想从一个订阅者那里请求一个数据库

从存储库:我很容易使用下面的代码(例如实体用户,我想用id=1检索用户。

代码语言:javascript
运行
复制
 $repository = $this->getDoctrine()->getManager->getRepository('NameBundle:User');
 $user = $repository->find(1);

但是我怎么才能从一个悬疑者那里做到呢。

这是我尝试过的..。(没有成功,因为我从Sdz\BlogBundle\Form\EventListener\Subscriber::getEntityManager()“得到了以下内容:"FatalErrorException: Error: Call to undefined method Symfony2

代码语言:javascript
运行
复制
namespace Sdz\BlogBundle\Form\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Doctrine\ORM\EntityRepository;

class TraductionSubscriber implements EventSubscriberInterface
{
  public static function getSubscribedEvents()
  {
    return array(FormEvents::PRE_SET_DATA => 'preSetData');
  }


  public function preSetData(FormEvent $event)
  {
    $form = $event->getForm();      
    $datas = $event->getData(); 

    $userexist == 'no'

    foreach ($datas as $data){
        if ($data->getUser()->getId() == 1)     { $userexist = 'yes'; $user= $data->getUser();  }
    } 

    if ($userexist == 'no') {
        $repository = $this->getEntityManager()->getRepository('SdzBlogBundle:User');
        $user = $repository->find(1);
    }   

    $form
    ->add('notes', 'collection', array(
                    'type' => new NoteType,
                    'label' => $user->getName(),
                    'required' => false,
                    ));
  }
}
EN

Stack Overflow用户

发布于 2014-11-20 03:58:29

只需将其传递给构造函数(如果它不是一个服务):

代码语言:javascript
运行
复制
class TraductionSubscriber implements EventSubscriberInterface
{
  private $em;

  public function __construct(EntityManagerInterface $em)
  {
      $this->em = $em;
  }

  ...

并使用:

代码语言:javascript
运行
复制
new TraductionSubscriber($em);
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27025692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档