Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 3将服务注入实体存储库_Php_Symfony - Fatal编程技术网

Php Symfony 3将服务注入实体存储库

Php Symfony 3将服务注入实体存储库,php,symfony,Php,Symfony,我尝试将memcached服务注入实体存储库,但我的变体不起作用 services: work.repository.company: class: WorkBundle\Repository\CompanyRepository factory: ['@doctrine.orm.entity_manager', getRepository] arguments: - 'WorkBundle:Company' calls: - [

我尝试将memcached服务注入实体存储库,但我的变体不起作用

services:
  work.repository.company:
    class: WorkBundle\Repository\CompanyRepository
    factory: ['@doctrine.orm.entity_manager', getRepository]
    arguments:
        - 'WorkBundle:Company'
    calls:
        - [setCacheService, ['@memcache.default']]
CompanyRepository具有setter setCacheService,但未调用它

class CompanyExtension extends \Twig_Extension
{
    /**
     * @var EntityManager
     */
    private $em;

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

    public function getFunctions()
    {
        return array(
            new \Twig_SimpleFunction('getCompaniesCount', array($this, 'getCompaniesCount'))
        );
    }

    /**
     * @return integer
     */
    public function getCompaniesCount()
    {
        return $this->em->getRepository('WorkBundle:Company')->getActiveCompaniesCount();
    }

    public function getName()
    {
        return 'work_company_extension';
    }
}
为什么此代码不起作用?

您是否已在您的
工作包:公司
实体中注册了
repositoryClass
?您的实体应该包含如下内容:
@ORM\entity(repositoryClass=“Work\Company”)
或类似的yaml


您应该让Symfony通过将
work.repository.company
注入到您的小树枝扩展中来创建存储库。

糟糕的做法!如图所示:或者使用从细枝扩展内部获取不会有好的结果。也许您的意思是建议注入存储库而不是注入实体管理器?