Symfony2:从每个页面登录

Jea*_*ean 3 login symfony

我有一个Symfony2 Web应用程序,需要用户登录才能执行这些有用的操作.在Symfony中,您可以放置​​一个指向登录页面的链接,然后由框架处理的安全性完成剩下的工作.您必须在security.yml配置文件中定义登录页面的路由.

我想知道是否可能以及如何让用户登录网站的每个页面(例如,通过在页面顶部插入登录表单).这将节省页面加载,不会打扰用户.

提前致谢

Car*_*dos 8

执行此操作的最佳方法是让所有模板扩展基本模板.IE,在你所有的Twig模板中都有类似的东西

{% extends 'YourBundle::base.html.twig' %}
Run Code Online (Sandbox Code Playgroud)

在base.html.twig中渲染一个呈现登录表单的控制器.为此,在base.html.twig中执行以下操作:

{% render "YourBundle:Security:loginForm" %}
Run Code Online (Sandbox Code Playgroud)

然后创建一个控制器动作,如:

public function loginFormAction()
{
    $loginForm = //create the form
    return $this->render('YourBundle:Security:loginForm.html.twig', array(
        'form' => $loginForm,
    }
}
Run Code Online (Sandbox Code Playgroud)

最后在您的loginForm.html.twig中呈现表单.

  • 当然,一切都在服务器端渲染,但在同一个动作中执行所有操作或渲染两个不同的操作并不相同.你可以轻松测试它,包括一个树枝模板,然后在其他测试中,渲染它; 看一下Symfony2栏中的内存使用情况,这个测试将阐明这个概念 (2认同)