gpt4 book ai didi

doctrine - Symfony2 在服务容器中使用 Doctrine

转载 作者:行者123 更新时间:2023-12-03 01:14:48 28 4
gpt4 key购买 nike

如何在服务容器中使用 Doctrine?

该代码只会导致错误消息“ fatal error :调用未定义的方法 ...::get()”。

<?php

namespace ...\Service;

use Doctrine\ORM\EntityManager;
use ...\Entity\Header;

class dsdsf
{
protected $em;

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

public function create()
{
$id = 10;
$em = $this->get('doctrine')->getEntityManager();
$em->getRepository('...')->find($id);
}
}

服务.yml

service:
site:
class: ...\Service\Site

最佳答案

根据您的代码,您已经注入(inject)了一个EntityManager。您不需要调用 $em = $this->get('doctrine')->getEntityManager() — 只需使用 $this->em

如果您尚未注入(inject) EntityManager,请阅读 this .

更新:

您需要让容器将 EntityManager 注入(inject)到您的服务中。以下是在 config.yml 中执行此操作的示例:

services:
your.service:
class: YourVendor\YourBundle\Service\YourService
arguments: [ @doctrine.orm.entity_manager ]

我更喜欢define bundle 的服务位于它们自己的 services.yml 文件中,但这有点更高级,因此使用 config.yml 就足以开始使用。

关于doctrine - Symfony2 在服务容器中使用 Doctrine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8342031/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com