2016-12-06 138 views
1

今天我有一個關於克萊因的問題,我在問,因爲在互聯網上這個庫沒有太多的文檔。我想將用戶重定向到/登錄,如果他們不是「/登錄」或「/註冊」以外的任何網頁上,他們arent登錄我,下面我曾嘗試:重定向頁面!=登錄或註冊? Klein

$this->klein->respond('GET', '[email protected]^/login|register', function ($request, $response, $service, $app) { 
      if (!Latrina::getLibrary('latrina.user.user')->loggedIn()) { 
       $response->redirect('/login')->send(); 
      } 
     }); 

它的工作原理,但它重定向到/登錄如果他們在/註冊這​​是非常惱人的,因爲它使他們禁止註冊..

+0

該文檔是不明確的,我不知道klein路由器。 __But__問題似乎在這裏:'!@ ^/login | register''。我會嘗試''!^ ^/login |/register''或甚至''!^^login |!@^^/register'' – Jeff

回答

1

我沒有親自驗證$ this請求param這個回調是一個字符串 - 它可能是一個字符串對象或數組,以及需要檢查爲屬性的URL。但是,這種一般邏輯是你在找什麼:

$this->klein->respond('GET', '[email protected]^/login|register', function ($request, $response, $service, $app) { 
     if (!Latrina::getLibrary('latrina.user.user')->loggedIn()) { 
      if (strpos($request, 'login') !== false) { 
       $response->redirect('/login')->send(); 
      } else { 
       $response->redirect('/register')->send(); 
      } 
     } 
    }); 
+0

不行,看來沒有任何函數參數傳遞頁面訪客觀看。 –