php - Laravel 5.4 如何在Controllers中共享變數作為"全域變數"使用?
ringa_lee
ringa_lee 2017-06-05 11:09:17
0
3
1483

因為Laravel 5.3開始無法在Controller的__construct()方法中使用Auth::check()Auth::user()這樣的函數(因為Session沒開始起作用)
(可參考官方文件的說明在Controller部分, 但這個方法不適用於此場景)

又懶得在每個函數都寫

if (Auth::check()) {
    $user = Auth::user()
}

目前唯一的偷懶方法就是Controller全域變數了, Google搜到之前有人用App::before()方法來做的, 但這個方法似乎在5.4被取消了?

有人知道Laravel 5.4怎麼實現嗎?

用Config來實現的都散了吧, 在這裡很顯然不適合.

ringa_lee
ringa_lee

ringa_lee

全部回覆(3)
左手右手慢动作

感謝@安正超 在Laravel China提供的解決方法:Laravel 5.3+ 控制器裡如何取得登入使用者

仅有的幸福

首先,使用者校驗完全可以透過中介軟體去控制,放在控制器的建構子裡並不合適。

另外,Container是個好東西,不光可以存實例,存些全域變數又未嘗不可呢?

淡淡烟草味

中間件是你最好的選擇laravel中間件文件

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板