2014-02-15 41 views
0

我正在编写url_for的扩展,它将检查登录的用户是否具有适当的凭据,以在呈现所述链接之前访问路由的链接。在Symfony 1.4中确定路由的操作

我已确定如何从模块/操作字符串获取操作,并成功检查所需的凭据。但是,我无法找到一种可靠的方法从路由名称中获取相应的Action,无论是命名路由还是从模式匹配派生的路由,例如

home/index => module: home, action: index 
@home  => module: home, action: index 

我怀疑我需要从sfRouting复制代码,因为我无法找到Symfony的一个公共的方法来做到这一点。有没有更好的办法?

+0

通常我会检查模板,如果用户有渲染的链接之前相应的凭据。您也可以将所有工作留给Symfony - 让用户点击链接,如果他们没有足够的权限,他/她将被重定向到“未经授权”页面。 –

+0

因为我会检查控制器,如果我有正确的凭据,我将其重定向到安全页面。 –

回答

0

我倾向于只使用路由名称为这样的东西:

<?php $route = $sf_context->getInstance()->getRouting()->getCurrentRouteName() ?> 

<?php if ($route == 'home'): ?> 
    <p>hello</p> 
<?php endif ?>