私は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
セッションがまだ生きていることを意味します!
どうすればこの問題を解決できますか?