【发布时间】:2021-10-02 04:52:44
【问题描述】:
我正在使用 Laravel 5.8 进行在线商店项目,在这个项目中我添加了一个复选框,用于检查用户是否想通过他的在线钱包支付价格:
<input class="form-check-input" type="checkbox" name="pay_wallet" value="1" id="defaultCheck2">
<label class="form-check-label small mr-3" for="defaultCheck2">
Pay with Wallet
</label>
然后在控制器中,如果用户选中了复选框,我添加了这个来提交会话:
try {
if ($request->pay_wallet == '1') {
Session::put('wallet', 'payment');
return redirect()->back();
}
}catch (\Exception $e) {
dd($e);
}
然后在视图中,我尝试了这个:
@php
if(session('wallet')){
$us_id = Auth()->user()->usr_id;
$user_wallet = App\UserWallet::where('user_id', $us_id)->get();
foreach($user_wallet as $uw){
echo "
<ul>
<li>$uw->id</li>
<li>$uw->balance</li>
</ul>
";
}
}
@endphp
基本上我需要做的是检查,如果会话wallet被提交,根据他的用户ID显示所有可用的钱包。
但现在的问题是,当我刷新页面时,它仍然显示钱包。这意味着会话wallet 仍然存在!
我该如何解决这个问题?
【问题讨论】:
-
这就是会话的工作方式。完成计算/显示钱包余额后,您是否尝试过取消设置/清除钱包会话?另外,为什么不在控制器中获取用户的钱包信息并将其传递给视图?
-
@brombeer 我刚刚尝试在
foreach之后添加Session::forget('wallet');,但重定向后仍然显示<li>s -
请注意,我们更喜欢这里的技术写作风格。我们轻轻地劝阻问候,希望你能帮助,谢谢,提前感谢,感谢信,问候,亲切的问候,签名,请你能帮助,聊天材料和缩写 txtspk,恳求,你多久了被卡住、投票建议、元评论等。只需解释您的问题,并展示您尝试过的内容、预期的内容以及实际发生的情况。
标签: php laravel laravel-5.8 laravel-session