Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
访问实体类中的Symfony2全局参数_Symfony_Parameters_Model - Fatal编程技术网

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

访问实体类中的Symfony2全局参数,symfony,parameters,model,Symfony,Parameters,Model,我在parameters.ini文件中存储了一个值,我需要在模型的prepersist方法中访问它 通常我使用$this->container->getParameter('value'),但该容器在实体中不可用 有没有办法在实体类中获取参数 另外,该值是一个API键,用于我在prepersist期间从中提取信息的服务。最佳实践是在参数中保留密钥/密码。ini最佳实践是使用服务来持久化实体。这个方法将在调用updateMyEntity()服务方法时注入容器并设置参数 控制器内部(或任何您想要的)

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

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

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


另外,该值是一个API键,用于我在prepersist期间从中提取信息的服务。最佳实践是在参数中保留密钥/密码。ini

最佳实践是使用服务来持久化实体。这个方法将在调用
updateMyEntity()
服务方法时注入容器并设置参数

控制器内部(或任何您想要的):

用户服务中

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

除了Florent的答案之外,实体也意味着纯粹的数据对象。他们不应该知道应用程序中的任何其他变量或服务。我更好奇的是,为什么您的实体需要了解系统范围内的API密钥。由于背景资料很少,我想说你应该重新考虑一下你想做什么


您需要一个与API交互的服务,理想情况下通过容器进行配置。我看不出这与实体有什么关系。

设置用户服务比我想得到的要复杂得多。这个基本功能(获取全局参数)S2不会将参数暴露于全局空间。如果您确实觉得需要访问$kernel并从那里提取它。但是你真的应该使用一个服务。我在拉预试期间输入的L物理位置的纵横比。你仍然可以使用服务来做这件事。这里有一个bundle可以做到这一点:-它使用事件检查需要添加坐标的实体,并在保存时查询和更新它们。希望这有帮助。
public function update(User $user) {
    $user->setSomeParameter($this->container->getParameter('value'));
    $this->em->persist($user);
}