2010-03-16 61 views
2

是否有某种方法可以从自定义路由类访问用户对象?从自定义路由类访问用户会话

我想在生成url时添加一个参数,并且该参数位于用户会话中,所以我需要访问它。

我发现访问的唯一方法是使用sfContext :: getInstance() - > getUser(),但它被称为效率低下。

谢谢!

回答

0

我会按照你提到的方式写它 - 我曾经在类似的情况下使用过这种方法,从来没有问题表现明智,并且怀疑你会一样。

另外,从来没有听说过这种效率低下,但它有点皱眉,因为它将路线耦合到上下文。可以克服这个问题的另一种方法是将变量传递给路由,就像你使用其他参数一样(或者如果你需要整个事物,则是用户对象)。如果你需要做很多事情,你总是可以创建一个自定义的url helper来包装现有的url_for方法,并将这个参数添加到所有其他传递的细节中。

+1

那么,我的意思是“低效率”的方式“坏代码”,而不是性能。这是一个解释:http://webmozarts.com/2009/07/01/why-sfcontextgetinstance-is-bad/ – 2010-03-17 09:02:40

0

我已经实现(现在)的解决方法是从某处获取某些数据(不理想,我愿意访问用户会话),并在$ params中设置一个新参数,自定义路由类。

希望它有帮助...