[英]Laravel Storing BIgInt in Session
我正在嘗試將一些與用戶相關的信息存儲在 Session 中,當用戶沒有 bigInteger id 時效果很好,但是當他們這樣做時效果不佳。
當我使用 dd(); 在位於 web.php (GET Request) 的路線中,id 顯示得很好,但是當我嘗試 dd(); 它在其他地方它只是返回 null。
例如,當用戶未登錄時,我有一個顯示“鏈接帳戶”的按鈕,而當 session 可用時,它應該顯示“注銷”。
此外,我將用戶轉發到只能由登錄用戶訪問的特定頁面(存儲了 session 數據的用戶)並且它進入頁面沒有問題,但是在重定向之后用戶不能 go 到任何其他限制為非- 登錄用戶。
我懷疑它與 integer 類型有關,因為所有其他用戶在執行任何操作時都沒有一個問題。
任何幫助將不勝感激,謝謝。
該過程或多或少看起來像這樣。
將 ID 存儲在 Controller 中:
$userId = 221345230; // The number looks like that x)
Session::put('userId', $userId);
檢查中間件中的 ID:
if(!session('userId')){
return redirect("/");
}
在視圖中檢查 ID:
@if(!session('userId'))
<a>Link Account</a>
@else
<a>Logout</a>
問題是我沒有更改用戶 Model 中的類型。
這意味着在請求從數據庫中獲取用戶數據時,model 發送的是 integer 而不是字符串,當您在 Z62A004B95946BB97541AFA471DCCA73 中使用 BIGINT 時,這將不會成功。
因此,請確保您在需要的地方更改類型:D
例子
// Wrong
$user_id = 222234312432;
User::where("user_id", $user_id);
// Correct
$user_id = (string) 222234312432;
User::where("user_id", $user_id);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.