【发布时间】:2022-07-08 01:13:56
【问题描述】:
成功付款后,我正在尝试将查询的结果从我的数据库打印到视图中。 但是,当我尝试访问传递给视图的数据时,出现以下错误
Property [order_number] does not exist on this collection instance.
我已经在集合上做了var_dump,它返回了属性和值,但是当我尝试像$orderDetails->column_name那样访问它时,我得到一个错误
下面是我的方法
public function complete(Request $request)
{
$paymentId = $request->input('paymentId');
$payerId = $request->input('PayerID');
$status = $this->payPal->completePayment($paymentId, $payerId, $request->order_number);
$order_number = $request->order_number;
$order = Order::where('order_number', $order_number)->first();
$order->status = 'processing';
$order->payment_status = 1;
$order->payment_method = 'PayPal';
$order->save();
Cart::clear();
$orderDetails = Order::where('order_number', $order_number)->get();
return view('frontend.pages.order-success', [
'orderDetails' => $orderDetails
]);
// return redirect()->route('/')->with('message', 'Your Order has been placed successfully! We will contact you with the details you provided');
}
这是我的查看页面
@extends('frontend.layouts.main')
@section('title', 'Order Successful')
@section('content')
<!-- Main Content -->
<div id="main-content" class="site-main clearfix">
<section class="order-detail themesflat-section">
<div class="themesflat-container">
<div class="top-order text-center">
<h5 class="heading">Congratulation! You’ve completed payment.</h5>
<div class="order-infor">
<div class="item number">
<div class="title">Order Number</div>
<div class="content">
{{ $orderDetails->order_number }}
</div>
</div>
<div class="item date">
<div class="title">Date</div>
<div class="content">12 August 2020</div>
</div>
<div class="item total">
<div class="title">Total</div>
<div class="content"></div>
</div>
<div class="item payment">
<div class="title">Payment Method</div>
<div class="content">Check Payments</div>
</div>
</div>
</div>
<div class="main-order">
<div class="heading">Order Details</div>
<table class="table-order">
<tbody>
<tr class="title">
<th class="product-infor">Product</th>
<th class="price">Price</th>
</tr>
<tr class="item">
<td>
<div class="title-product"><a href="#"></a></div>
</td>
<td class="price">
<div class="price-inner"></div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
</div><!-- /#main-content -->
@endsection
【问题讨论】:
-
$orderDetails是一个集合,而不是单个记录。使用first()而不是get(),或者在你的刀片上使用一个环。 -
$order是一个带有订单的变量,$orderDetails是一个只有 1 个项目的集合,相同的订单。我建议阅读 Eloquent 文档。 -
会不会是
$request->input('order_number');和其他从请求中获取数据的尝试一样?