首頁  >  問答  >  主體

php - Laravel 5.4 如何在Controllers中共享變數作為"全域變數"使用?

因為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_leeringa_lee2716 天前1451

全部回覆(3)我來回復

  • ringa_lee

    ringa_lee2017-06-05 11:11:17

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

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-05 11:11:17

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

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

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-05 11:11:17

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

    回覆
    0
  • 取消回覆