Symfony2控制器外的会话数据

时间:2011-10-29 16:45:10

标签: authentication symfony twig

您好我正在尝试在我在推进模型类中保存对象时登录用户。

我从symfony2上的所有文档中看到,您通过以下方式获得了用户:

$this->get('security.context')->getToken()- >getUser()

和里面的枝条

app.user

但如何从模型/实体内部获取相同的信息

修改

好的,我正在尝试做的更多,因为我看不到真的如何做到这一点。我看过依赖注入注入,但不确定它是否适合我想要做的事情。

我有一个名为Event的实体类,另一个名为UserToEvent的事件 - > postSave()我想创建UserToEvent对象并使用新的event.id和user.id将其保存到数据库中

我真的认为这需要一个定义为here的“服务”,因为这表示服务是“某种”全局“任务”,并且必须每次我想要将用户注入到Event对象中保存一个新对象似乎也有点浪费。通常我希望能够按照Application :: getUser()的方式做一些事情。但这似乎不可能。

1 个答案:

答案 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