2014-04-30 86 views
0

我的問題是微不足道的BYT我是新的,甚至不知道要尋找什麼Kohana的看法改變記錄或不

我使用Kohana的框架來構建自己的網站。我已經學會了如何使用auth模塊(或多或少)並創建登錄,註銷「arhitecture」。

當我的用戶沒有登錄我重定向到登錄頁面,當它是我使用視圖來顯示用戶數據。

現在我正在嘗試做類似於頁面菜單的操作,當用戶未登錄時可以看到「登錄」按鈕,但登錄時可以看到「登出」按鈕。我是否清楚自己?我假設我不能在任何地方重定向,因爲這是同一視圖的一部分。那麼我如何遏制視圖內容對應用戶狀態?

我不是在尋找一個現成的代碼(雖然那會讓我沮喪),而是尋找什麼和閱讀什麼的方向。

+0

可能重複[如何根據用戶角色隱藏HTML表單的一部分](http://stackoverflow.com/questions/23323414/how-to-hide-part-of-html-form-depending-on- user-role) – kero

回答

0

對於Kohana的3.2,你可以檢查,如果用戶是通過調用

Auth::instance()->logged_in(); 

登錄集成的一個選擇可能是建立一個基本的控制器,其中用戶被重定向或設置在行動之前。這樣你總是有1個地方的重定向和用戶設置,如果有一個有效的登錄。

class Controller_Custom extends Controller { 

    protected $user; 

    public function before() 
    { 
     if (! Auth::instance()->logged_in()) { 
      $this->request->redirect('url/login/page'); 
     } 

     $this->user = Auth::instance()->get_user(); 
    } 
} 

對於Kohana 3.3的重定向請求有點改變,我相信。

+0

這就是OP已經擁有的問題 - 問題在於,如果他可以在一個視圖中區分登錄或不登錄 – kero

+0

您需要在視圖中使用if else語句,因爲您擁有用戶對象,您可以輕鬆檢查用戶是否在視圖中登錄。或者包含單獨的模板。 – mrBrown