簡體   English   中英

Laravel 在 Session 中存儲 BIgInt

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM