symfony2在将请求注入服务时没有路由参数

时间:2014-03-17 23:32:19

标签: php symfony dependency-injection symfony-2.4

我在使用symfony 2.4进行开发时遇到了一个问题。

我试图将请求注入我的服务,这是一个用户提供商。一切都很好,除了没有路线参数。

所以这是我的bundle' routing.yml:

skedl_web_homepage_backend:
    pattern: /
    host: '{account}.{domain}'
    defaults: { _controller: SkedlWebBundle:Backend:index }
    requirements:
        domain: '%domain%'

我的登录和注册表格与文档中的内容相差无几。

这是我的捆绑服务.yml:

parameters:
    user_provider.class: Skedl\WebBundle\Service\UserProvider

services:
    user_provider:
        class: "%user_provider.class%"
        arguments: [ @doctrine.orm.entity_manager, @request_stack ]

security.yml:

providers:
    main:
        id: user_provider

最后来自我的UserProvider.php:

class UserProvider implements UserProviderInterface
{
    protected $em;

    public function __construct(\Doctrine\ORM\EntityManager $em, RequestStack $requestStack)
    {
        $this->em = $em;

        var_dump($requestStack->getCurrentRequest());
        die;
    }
}

我试图获得帐户'来自请求属性的参数,但它完全是空的:

  ["attributes"]=>
  object(Symfony\Component\HttpFoundation\ParameterBag)#9 (1) {
    ["parameters":protected]=>
    array(0) {
    }
  }
  ["request"]=>
  object(Symfony\Component\HttpFoundation\ParameterBag)#7 (1) {
    ["parameters":protected]=>
    array(0) {
    }
  }
  ["query"]=>
  object(Symfony\Component\HttpFoundation\ParameterBag)#8 (1) {
    ["parameters":protected]=>
    array(0) {
    }
  }

我设置了一个请求监听器,我可以获得'帐户'在那里没有问题。 我试图使用范围,但没有运气(ScopeWideningInjectionException)。 我在这里错过了什么吗?

谢谢。

0 个答案:

没有答案
相关问题