因此,對Controller :: redirect進行了更改,現在在您的控制器操作被調用後觸發。因此,如果你想在邏輯被觸發之前重定向某人(例如沒有登錄),那就不再可能了。有誰知道如何模擬舊的2.X行爲,其中調用Controller :: redirect會立即停止一切並重定向?Cakephp-3.0可能立即重定向?
2
A
回答
5
關鍵是return
調用$this->redirect()
,它會立即從控制器返回一個響應對象,使Dispatcher明白要立即terminante請求:
return $this->redirect($url);
重定向可以從控制器動作本身或任何回調的控制器(beforeFilter
,beforeRender
,afterFilter
...)來完成。也可以從任何組件回調中返回重定向值。
0
有三種可能的方式來重定向用戶,如果他沒有登錄。我做了我的一個應用程序。首先是使用控制器的beforeFilter()。你可以使用像
public function beforeFilter(){
parent::beforeFilter();
if(empty($this->logged_in)){
//your redirect code or your logic
}
}
它在你的控制器動作被調用的第一時間執行。 其次,你可以創建一個類的構造函數。它也在第一時間執行。
public function __construct($request = null, $response = null) {
parent::__construct($request = null, $response = null);
//Your redirect code if user not logged in
}
您可以在AppController中編寫代碼beforeFilter();但是,如果您只想阻止未登錄的用戶訪問某些功能,則應使用Auth組件允許功能。語法是
$this->Auth->allow(array('action_name_1','action_name2'));
粘貼此允許在beforeFilter函數功能。通過使用上述技巧,您可以阻止用戶訪問您的邏輯,如果他/她沒有登錄。
相關問題
- 1. FacesContext.getCurrentInstance()。getExternalContext()。重定向不立即重定向
- 2. 如何立即在Symfony中重定向?
- 3. 如何使Shiny立即重定向?
- 4. Windows 8應用JavaScript重定向「立即」
- 5. ajax請求後立即重定向
- 6. 讓貝寶做立即重定向?
- 7. 是否有任何可能指向立即重新加載Python模塊?
- 8. 如何在重定向後立即執行JavaScript操作?
- 9. 貝寶立即購買按鈕重定向
- 10. Rails 2.3:在執行after_filter之前立即重定向
- 11. 在MVC中渲染視圖然後立即重定向
- 12. PHP:Paypal立即購買按鈕不重定向
- 13. 重定向標準輸出到FIFO立即
- 14. paypal立即購買按鈕與成功後重定向
- 15. hapi-auth-cookie在重定向鈴聲後不立即設置cookie
- 16. 的Response.Redirect與endResponse = false並不重定向立即
- 17. 註銷後立即登錄導致重定向到主頁
- 18. CodeIgniter Flexi Auth - 在登錄過期時立即重定向用戶
- 19. 表單沒有被處理,頁面立即重定向
- 20. 在Ajax響應沒有立即重定向後使用window.location.replace
- 21. 重定向立即倒計時完成後
- 22. 如何重定向StandardInput進程沒有進程立即退出?
- 23. 即使網站執行多重重定向,也可能看到網絡流量?
- 24. clock_gettime不能立即
- 25. 貝寶IPN確認屏幕後立即重定向,無需重新加載
- 26. 可能使用FlashMessenger而不重定向?
- 27. 星號重定向呼叫有可能
- 28. PHP 301重定向,不可能?
- 29. readyState 4 - 重定向url可能嗎?
- 30. JavaScript手機重定向的可能性
你可以不通過'$ this->在你的控制器動作中重定向('...')'嗎? (不知道的語法) –
** http://book.cakephph.org/3.0/en/controllers.html#redirecting-to-other-pages** – ndm
但它看起來像重新定向後可能工作,但返回;我從控制器調用的方法調用它...所以這不能解決我的問題。 – MiDri