【发布时间】:2010-03-16 15:46:14
【问题描述】:
有没有办法从自定义路由类访问用户对象?
我想在生成url的时候加一个参数,这个参数在用户会话里面,所以我需要访问它。
我发现访问的唯一方法是使用 sfContext::getInstance()->getUser(),但众所周知它效率低下。
谢谢!
【问题讨论】:
标签: symfony1
有没有办法从自定义路由类访问用户对象?
我想在生成url的时候加一个参数,这个参数在用户会话里面,所以我需要访问它。
我发现访问的唯一方法是使用 sfContext::getInstance()->getUser(),但众所周知它效率低下。
谢谢!
【问题讨论】:
标签: symfony1
我会按照你提到的方式来写 - 我在类似的情况下使用过这种方法,并且在性能方面从未遇到过问题,并且怀疑你会是一样的。
另外,从来没有听说过这个效率低下,但它有点不受欢迎,因为它将路由与上下文结合起来。可以克服这个问题的另一种方法是将变量传递给路由,就像你传递任何其他参数(或用户对象,如果你需要整个东西)一样。如果您经常需要这样做,您可以随时制作一个包装现有 url_for 方法的自定义 url 助手,将此参数添加到传递的任何其他详细信息中。
【讨论】:
我已经实现的一种解决方法(目前),是从某个地方获取一些数据(不理想,我愿意访问用户会话),并在 $params 的 generate 方法中设置一个新参数自定义路由类。
希望对你有帮助...
【讨论】: