[英]Store variable in session after login
我是 Laravel 框架的新手,我需要你們的幫助,伙計們!
我現在正在嘗試的是在登錄后立即在會話中添加一個新變量。 此變量取決於當時登錄的用戶。 我現在擁有的是這個,它有效但不是我真正想要的:
$loggedUserId = Auth::id();
$getTenantId = DB::table('users')->select('tenant_id')->where('id', $loggedUserId)->get();
$tenantId = $getTenantId[0]->tenant_id;
Session::put('tenant_id', $tenantId);
問題是這段代碼存在於 home.blade.php 中,我不想要那樣,因為如果,比方說,我想制作一個系統,當用戶注銷並再次登錄時,登錄后出現的頁面是登出前最后訪問的頁面。
我把這段代碼放在哪里,以便每次用戶登錄后都會執行?
要在用戶通過身份驗證后立即執行操作,您可以使用 Laravel 的事件。 這里的文檔准確地解釋了如何訂閱您所關注的事件: https : //laravel.com/docs/5.3/events#event-subscribers
創建中間件並將代碼放在那里。 然后將中間件添加到web
列表 ( app\\Http\\Kernel.php
) 或將中間件添加到路由組。 此外,您可以只用一行代碼執行相同的操作:
session()->put('tenant_id', auth()->user()->tenant_id);
最后,在您的情況下,您甚至不需要做所有這些事情,因為auth()->user()->tenant_id
和Auth::user()->tenant_id
是全局可用的(在所有控制器、視圖、模型中等)適用於所有登錄用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.