【问题标题】:Passing variable data using sessions in Laravel 5.8在 Laravel 5.8 中使用会话传递可变数据
【发布时间】:2020-07-13 05:39:23
【问题描述】:
class PaymentGatewayController1 extends Controller
{
public function getPaymentGatewayResponse(Request $request)
{
    $input = request()->input();

    Session::put(['email' => $input['email']]);
    Session::save();
return view('elements.blocks.iframe2',  ['response' => $input]);
}
}

现在我需要这个会话值到另一个控制器

class CheckoutController extends Controller
{
public function store(Request $request)
{

    $input = request()->all();
    $data = $request->session()->get('email');
    dd($data);
}
}

返回空值

Laravel 5.8 版

【问题讨论】:

  • Session::put(['email' => $input['email']]); 更改为Session::put(['email' => $request->email]);

标签: php laravel laravel-5 eloquent


【解决方案1】:

将您的第一个控制器更改为此

class PaymentGatewayController1 extends Controller
{
    public function getPaymentGatewayResponse(Request $request){
        $input = request()->input();
        Session::put(['email' => $request->email]);
        Session::save();
        return view('elements.blocks.iframe2',  ['response' => $input]);
    }
}

在检索控制器时使用这个

class CheckoutController extends Controller
{
    public function store(Request $request){
        $input = request()->all();
        $data = Session::get('email);
        dd($data);
    }
}

并且不要忘记刷新会话以避免流完成后的安全漏洞

【讨论】:

  • @JagadeeshChandra 在你的第一个控制器中尝试 dd($request->email) 并告诉我结果
  • Session::put(['email' => $request->email]); Session::save(); $data = Session::get('email'); dd($data); 我在这里得到会话值par@aol.com
  • 我用其他控制器测试过,它工作正常。但是,它不适用于上述控制器。
  • @JagadeeshChandra 你能确认一下你没有在这个控制器的任何地方刷新会话
  • 我发现了这个问题,我试图将来自支付网关的响应存储在会话中,但它没有发生。支付网关重定向到成功回调 url 后会话被破坏。
猜你喜欢
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 1970-01-01
  • 2015-05-29
相关资源
最近更新 更多