【问题标题】:Displaying Transaction Id to the customers view向客户视图显示交易 ID
【发布时间】:2021-11-29 17:54:48
【问题描述】:

我一直在制作电子商务 laravel 系统,在客户完成所有付款后,我一直在努力向他们展示他们的交易 ID。我正在使用 API 来执行交易。用户成功完成支付后,交易 ID 会被保存到数据库中。现在,我想获取交易 ID,并将其显示在客户视图上,以便他们可以打印发票。这是应该处理所有事务 ID 的控制器:

public function confirmPayment(Request $request){
    $request->validate(['transactionId'=>'required']);
    $transId = $request->transactionId;
    $exists = Payment::where('mpesa_trans_id',$transId)->latest()->first();
    if(!$exists){
        $error= ["success"=>false, "error"=>"Unable to confirm your transaction code. Please contact admin.. :)"];
        session($error);
        return back();
    }
    $message = ["success"=>true, "message"=>"Payment successful!"];
    session($message);
    return back();
}

这是我尝试在客户视图上显示交易 ID 的方式

                        <div class="frm-grp">
                            <label>@lang('Transaction Id')</label>
                            <input type="text" name="transactionId" placeholder="@lang('Example: OIB9FQP9H7')">
                            <span class="text-box">Your Transaction Id Is</span>
                            <span>{{$transId->transactionId}}</span>
                        </div>

这也给了我一个错误“未定义的变量:transId”。我还没有放@foreach。

有人可以帮助我找出解决此问题的方法吗?这是客户付款后应该显示交易ID的地方。

【问题讨论】:

    标签: javascript php laravel laravel-5


    【解决方案1】:

    控制器中声明的变量不会自动用于视图,尤其是在您进行重定向时。

    要将变量传递给 laravel 中的视图,您需要将它们包含在 view 函数的第二个参数中:

    return view('transaction.show', ['transId' => $transId]);
    

    但是,您正在重定向到上一条路线,因此您不能这样做。 相反,您需要以其他方式使该变量可用。

    之前的请求数据应该可以使用old method 获得,我认为这适用于您的情况:

    <span>{{ old('transId') }}</span>
    

    【讨论】:

    • 您的方法显示了一次最新的Id,但是一旦我再次测试它,就没有任何效果。谢谢
    猜你喜欢
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2019-11-11
    • 2014-11-24
    • 2018-02-23
    • 1970-01-01
    • 2018-09-24
    相关资源
    最近更新 更多