首页 > 解决方案 > Laravel 5.8:请求会话似乎没有在控制器上设置会话

问题描述

我的请求会话似乎没有在控制器中设置会话。正如你所说的$request->session()->flash('charge_wallet',$wallet);,我试图设置会话charge_wallet

然后在视图中bankGateWay.getToken,我尝试检查会话是否存在。但它返回不存在不知何故!那么这里出了什么问题呢?我该如何解决这个问题?

控制器

public function chargeWallet(Request $request, $wallet, $user)
{
    try {
        $data = $request->validate([
            'charge' => 'required|integer|min:1000',
        ]);

        $payment = Payment::create([
            'pay_type_id' => '191',
            'pay_date' => jdate()->format('Y/m/d'),
            'pay_amount' => $data['charge'] * 10,
            'pay_ord_id' => '',
            'pay_status_id' => '181',
            'pay_creator_id' => auth()->user()->usr_id,
        ]);

        $request->session()->flash('charge_wallet', $wallet); // Setting Session

        $sendInformation = new BankGateWay($payment->pay_id, 
            $payment->pay_amount, $payment->created_at->timestamp,
            route('returnFromGateCharge'));
        
        return view("bankGateWay.getToken", compact('sendInformation'));
    } catch (\Exception $e) {
        return redirect()->back()->with('error', 'Wrong Data');
    }
}

看法

@if(Session::has('charge_wallet'))
    @dd('exists');
@else
    @dd('not exists');
@endif

标签: phplaravellaravel-5.8laravel-session

解决方案


public function chargeWallet(Request $request, $wallet, $user)
    {
        try {
            $data = $request->validate([
                'charge' => 'required|integer|min:1000',
            ]);

            $payment = Payment::create([
                'pay_type_id' => '191',
                'pay_date' => jdate()->format('Y/m/d'),
                'pay_amount' => $data['charge'] * 10,
                'pay_ord_id' => '',
                'pay_status_id' => '181',
                'pay_creator_id' => auth()->user()->usr_id,
            ]);

            $sendInformation = new BankGateWay($payment->pay_id, $payment->pay_amount, $payment->created_at->timestamp, route('returnFromGateCharge'));
            return view("bankGateWay.getToken", compact('sendInformation'))->with('charge_wallet',$wallet);
        }catch (\Exception $e) {
            return redirect()->back()->with('error', 'Wrong Data');
        }
    }

推荐阅读