您好我正在尝试在我在推进模型类中保存对象时登录用户。
我从symfony2上的所有文档中看到,您通过以下方式获得了用户:
$this->get('security.context')->getToken()- >getUser()
和里面的枝条
app.user
但如何从模型/实体内部获取相同的信息
修改
好的,我正在尝试做的更多,因为我看不到真的如何做到这一点。我看过依赖注入注入,但不确定它是否适合我想要做的事情。
我有一个名为Event的实体类,另一个名为UserToEvent的事件 - > postSave()我想创建UserToEvent对象并使用新的event.id和user.id将其保存到数据库中
我真的认为这需要一个定义为here的“服务”,因为这表示服务是“某种”全局“任务”,并且必须每次我想要将用户注入到Event对象中保存一个新对象似乎也有点浪费。通常我希望能够按照Application :: getUser()的方式做一些事情。但这似乎不可能。
答案 0 :(得分:3)
使用依赖注入。
将安全上下文或用户注入您需要的类。这是您在使用Symfony2应用程序时应该开始遵循的方法。
您可以手动或使用DIC注入服务。由于您想在实体类中使用它,您可能需要传递依赖
在构造函数中:
class Page
{
private $user = null;
public function __construct($user)
{
$this->user = $user;
}
}
或setter:
class Page
{
private $user = null;
public function setUser($user)
{
$this->user = $user;
}
}
或作为方法参数:
class Page
{
public function doSomething($user)
{
// do something with $user
}
}
关于依赖注入的一系列好文章:http://fabien.potencier.org/article/11/what-is-dependency-injection