在实体类中访问Symfony2全局参数

MrG*_*ass 6 parameters model symfony

我有一个值存储在我的parameters.ini文件中,我需要在我的模型的prepersist方法中访问它.

通常我使用$this->container->getParameter('value');,但容器在实体中不可用.

有没有办法在实体类中获取参数?

PS该值是我在prepersist期间从中提取信息的服务的API密钥.最佳做法是将密钥/密码保存在parameters.ini中

Flo*_*ent 8

最佳做法是使用服务来保留您的实体.这个会注入容器并在调用updateMyEntity()服务方法时设置参数.

在你的控制器内(或任何你想要的):

$user = new User('foo');
$user->setSomeProperty('bar');
$userService->update($user);
Run Code Online (Sandbox Code Playgroud)

里面UserService:

public function update(User $user) {
    $user->setSomeParameter($this->container->getParameter('value'));
    $this->em->persist($user);
}
Run Code Online (Sandbox Code Playgroud)

  • S2不会将参数暴露给全局空间.如果你真的觉得你需要访问$ kernel并从中拉出来.但你真的应该使用一项服务. (3认同)