向客户视图显示交易 ID
Posted
技术标签:
【中文标题】向客户视图显示交易 ID【英文标题】:Displaying Transaction Id to the customers view 【发布时间】: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的地方。
【问题讨论】:
【参考方案1】:控制器中声明的变量不会自动用于视图,尤其是在您进行重定向时。
要将变量传递给 laravel 中的视图,您需要将它们包含在 view
函数的第二个参数中:
return view('transaction.show', ['transId' => $transId]);
但是,您正在重定向到上一条路线,因此您不能这样做。 相反,您需要以其他方式使该变量可用。
之前的请求数据应该可以使用old
method 获得,我认为这适用于您的情况:
<span> old('transId') </span>
【讨论】:
您的方法显示了一次最新的Id,但是一旦我再次测试它,就没有任何效果。谢谢以上是关于向客户视图显示交易 ID的主要内容,如果未能解决你的问题,请参考以下文章