繁体   English   中英

symfony2修改全局用户参考吗?

Symfony2 modify global user reference?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我的User类中有setAttribute($ key,$ value)和getAttribute($ key,$ default)函数。 用户通过身份验证后,我想设置几个要设置的属性,稍后将在各种控制器中使用。

我尝试在成功处理程序函数中设置属性:

public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
      $token->getUser()->setAttribute("user_data_set", 1);
 }

但是当我尝试在控制器中调用它时,尚未设置该值

public function indexAction(Request $request) {

    //Get the logged in user
    $user = $this->getUser(); 
    //Entity Manager
    $em = $this->getDoctrine()->getManager();

    // this page is just used as the starting point to redirect the user to the appropriate page
    if($user->getAttribute("user_data_set", 0) == 1)
    {
        //Get Symfony1 route from the user data table
        $old_homepage = $user->getAttribute("user_homepage", "@default_homepage");
        //Convert route to Symfony2 format
        $new_homepage = $this->setForwardingAddress($old_homepage);

        return $this->redirect($this->generateUrl($new_homepage));
    }
    else
    {
        return $this->redirect('login');
    }        


}

如何修改全局用户而不是本地引用?

1 个回复

显然,您需要交叉请求解决方案,因此您需要使用DBsession

例如:

// Injecting Session service
public function __construct(Session $session){
    $this->session = $session
}

public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
    $this->session->set('user_data_set', 1);
}

然后在您的控制器中:

$foo = $session->get('user_data_set');

这就是你想要的吗?

1 Symfony2修改登录用户的角色

在我的应用程序的管理面板中,可以更改可用用户的角色。 当登录的用户更改其配置文件设置且未选择任何角色时,表单提交将检测到约束。 (在@实体级别定义)这是完全正确的。 实体未保存到数据库。 将会生成相同的表格,其中包含一条消息,告知用户至少需要一个角色。 到现在为止还挺好。 但是 ...

2 Symfony2循环参考

可能我的模板循环有问题。 代码php: 模板: 当我在第一次刷新时清除缓存它没关系,接下来我得到这个错误: 检测到服务“模板”的循环引用,路径:“模板 - >树枝 - > twig_menu”。 ...

2015-04-08 16:31:49 3 4028   symfony
3 Symfony 2全局功能

我想为我的Symfony 2应用程序提供一个全局函数集(跨多个控制器和实体),其作用类似于内置的PHP函数。 例如: 我可以创建一个包含以下功能的文件,但需要为每个名称空间复制一个文件: 处理此问题的最佳方法是什么? ...

4 Symfony2全局功能

例如,我有算法函数,它计算特定的哈希码。 函数本身是300多行代码。 我需要在我的捆绑包中的许多不同控制器中多次使用该功能。 我在哪里可以存储我的calculate_hash()以在我的捆绑中使用它? 我可以从其他捆绑包中访问它吗? 我还可以编写可以访问实体管理器的全局calculat ...

6 如何根据用户选择的字段值修改Symfony2表单?

我有一个博客类型,我希望只有当用户在选择字段中进行某个选择时才会将某些字段添加到表单中。 我听说过EventListener ,但我不认为我可以订阅一个FormEvent,所以监听器实际上可以跟踪select事件。 我怎样才能做到这一点? 这是我的BlogType : ...

7 Symfony2:如何使用表单修改当前用户的实体?

我正在尝试添加一个简单的表单,以允许我的用户编辑其个人资料。 我的问题是: 由于“链接”到表单的实体与当前用户对象相同( $user === $entity ,请参见下文),因此,如果表单验证失败,则将使用修改后的用户对象呈现视图(即无效形式的值)。 这是我的(经典)控制器: ...

8 Symfony2中修改的用户对象的身份验证失败

在我的应用程序中,我正在使用FOS用户捆绑包和Fr3d ldap捆绑包。 每次成功登录后,将触发一个侦听器方法。 该侦听器启动一项服务,该服务向Active Directory询问有关用户的其他信息。 然后,将这些数据存储在安全上下文中的用户对象中。 到现在为止还挺好。 但是, ...

9 设置全局参数Symfony2

我正在使用Symfony2。 对于我的应用程序,我需要为此设置一些全局参数。 我在我的parameters.ini文件中将参数定义为: 我可以使用以下代码在控制器中访问它: 当我使用FOSUserBundle时,我已经覆盖了ProfileHandler类,并且在该类中我想 ...

10 Symfony2用户时区

我正在构建一个symfony2应用程序,用户可以在其中选择她的时区。 我更改了秘书模型/表单,以将时区字段存储在User对象中。 要将时区应用于特定的控制器动作,我可以使用: 有没有一种方法而不必修改每个控制器/动作? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM