2010-03-16 63 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中設置一個新參數,自定義路由類。

希望它有幫助...