2012-07-31 42 views
2

我有一个Symfony2网站,我希望在登录页面上显示额外的信息,具体取决于用户尝试访问的URL。我正在使用“use_forward”。有没有办法在登录表单的控制器中看到URL?需要在Symfony2中登录的页面的URL

我想我可以设置多个防火墙指向不同的登录页面,但可能有相当多的,所以我宁愿避免这样做。

+0

你确切想要显示哪个URL?当前?以前(推荐人)? – 2012-07-31 09:54:23

+0

当前的URL。已导致登录页面显示的安全配置阻止的URL。 – rjmunro 2012-07-31 10:15:13

+0

因此,实际上不是当前的URL,而是之前的 - 导致重定向到登录表单? – 2012-07-31 10:19:36

回答

2

如果你想要一些“正确的”,那么看看this question的答案。

OR

如果你想这样做快速和肮脏的,你可以使用:

$this->container->get('request')->server->get('PHP_SELF'); 

Whick将产生类似/project_name/web/app_dev.php/controller_name/,你可以用串工作,但考虑到它会根据你正在工作的环境而改变。该Request class documentation将成为你的盟友在此,即:

$this->container->get('request')->getBasePath() 

会给你/project_name/web/

+0

实际上并不是一个Symfony方式...... – 2012-07-31 10:22:46

+0

@thecatontheflat事实上并非如此,而是完成了工作。如果有更好的'Symfony方式',我很想学习。 – GregPK 2012-07-31 12:57:31

0

你可以试着找找这个网址在一些地方:

$url = $request->get('_referer'); 

如果它是空的,那么你可以尝试检查标题

$url = $request->headers->get('Referer');