我在使用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)。 我在这里错过了什么吗?
谢谢。