84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
應該屬於比較菜的一個問題,就是我在處理前後端的時候,需要判斷是否有session來決定使用者是否登入。
但是我透過文件看到的辦法只能自己在每個頁面都引入一次判斷,然後進行其他操作,不過肯定有更簡單的辦法來處理這個事,自己實在是研究不出來了,請大神幫忙!
主要就是如何能一次設置,然後讓制定目錄下的頁面都判斷是否登錄,以便方便下一步的操作
第一種引用存取:將所有session判斷驗證寫在一個類別裡面。在每一個控制器裡建立前置控制器方法或初始化控制,在方法裡面直接引用session類別的登入驗證方法。第二種繼承:就是每個控制器都繼承session驗證類,這樣每次存取控制器都繼承session所有類別與方法,在session類別設定初始化控制,作為session的登入驗證
個人推薦第二種,因為不需要在每個控制器裡面初始化控制器,減少程式碼便於維護
寫一個基類如Base.php,通过其_initialize來實現,如:
Base.php
_initialize
rediect('Login/index','请先登录后操作'); } } }
其中Login.php不能继承Base.php,否則需要另外的特殊判斷,如:
Login.php
rediect('Index/index','已登录'); } } }
我也是小白一枚,只是有個想法,可以在登入儲存session之後,在後端寫一個判斷session的公共方法,然後在需要目錄下面嗲用這個方法,這樣就不需要在每個目錄下面都去判斷了!
只是个人想法,没有实践啊!
寫一個驗證中間件(行為),然後在路由裡調用,可以任意指定哪些頁面需要調用這個驗證的中間件.
可以看下手冊裡行為那一部分
不用每個頁面引入判斷啊,你把所有的控制器繼承一個公共的控制器,在公共的控制器寫一次session判斷就可以了
第一種引用存取:將所有session判斷驗證寫在一個類別裡面。在每一個控制器裡建立前置控制器方法或初始化控制,在方法裡面直接引用session類別的登入驗證方法。
第二種繼承:就是每個控制器都繼承session驗證類,這樣每次存取控制器都繼承session所有類別與方法,在session類別設定初始化控制,作為session的登入驗證
個人推薦第二種,因為不需要在每個控制器裡面初始化控制器,減少程式碼便於維護
寫一個基類如
Base.php
,通过其_initialize
來實現,如:其中
Login.php
不能继承Base.php
,否則需要另外的特殊判斷,如:我也是小白一枚,只是有個想法,可以在登入儲存session之後,在後端寫一個判斷session的公共方法,然後在需要目錄下面嗲用這個方法,這樣就不需要在每個目錄下面都去判斷了!
寫一個驗證中間件(行為),然後在路由裡調用,可以任意指定哪些頁面需要調用這個驗證的中間件.
可以看下手冊裡行為那一部分
不用每個頁面引入判斷啊,你把所有的控制器繼承一個公共的控制器,在公共的控制器寫一次session判斷就可以了