2011-03-30 85 views
0


有沒有一種方法可以在Kohana3中引用前面的控制器/動作。Kohana3參考前一個控制器?

讓我稍微解釋一下:
我有一個基本控制器,用於檢查用戶是否使用Auth模塊登錄系統。
如果用戶轉到他不允許查看的頁面,他將被重定向到登錄屏幕。

現在我想(當他唱歌時)回到觸發登錄控制器的頁面。
我想將它作爲URI段傳遞,但問題是控制器可能包含「/」字符。

例子:

  • 用戶進入mysite.com/user/profile
  • 他被轉到mysite.com/login(需要傳遞用戶/ profile文件)成功登錄後用戶
  • 被重定向回mysite.com/user/profile
+1

將它存儲在會話中? – netcoder 2011-03-30 20:58:31

+0

好主意,比搞亂URI好得多。發表您的評論作爲答案,這樣你就可以得到你的認可標誌:) – ZolaKt 2011-03-30 21:19:01

回答

2

我通過不斷更新未登錄用戶的會話值來實現此目的。

Session::instance()->set('redirect', Request::instance()->uri()); 

然後,登錄成功後,您可以重定向這樣的:

Request::instance()->redirect(Session::instance()->get('redirect', URL::base()); 

我沒有測試的代碼,但概念是存在的。如果未設置任何值,則繼續重定向到主頁。

請確保您小心並驗證重定向網址。它不應該,但是因爲我們正在處理用戶數據,所以總有一些不好的事情可能會回來。您最後想要的是在您登錄後將其重定向到病毒侵入網站。