我正在使用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
他还活着!
那么你对这个问题的解决方案是什么呢?
我真的很感激你们关于这个的任何想法或建议。。。
提前谢谢。
1条答案
按热度按时间v64noz0r1#
首先,当我们设置session时,它将保持值,直到session被销毁或者您使用session::forget(“wallet”)为止。但您只需要在加载页面时才可以使用它。
为此,您可以使用会话提供的laravel flash消息。将代码替换为以下内容:
之后,当你像那样设置钱包标志时。它将仅在您设置时第一次可用,然后将自动删除:)