搜索

首页  >  问答  >  正文

Laravel中无法返回$couponDetails->couponName的值

<p><br /></p> <pre class="brush:php;toolbar:false;">$couponCode = $request->couponCode; // 通过优惠码获取优惠券详情 $coupon = Coupon::where('couponCode', $couponCode) ->get() ->first(); $couponDetails = response()->json($coupon); return $couponDetails->couponName; </pre> <p>返回结果如下:</p> <blockquote> <p>Undefined property: IlluminateHttpJsonResponse::$couponName (500 Internal Server Error)</p> </blockquote> <p>我试图从couponDetails中获取couponName的值</p>
P粉714890053P粉714890053496 天前580

全部回复(3)我来回复

  • P粉950128819

    P粉9501288192023-08-21 13:53:36

    正如另一个用户已经提到的,但没有更多的代码,我将向您展示如何做到:

    // 将优惠券代码存储在变量中(不需要)
    $couponCode = $request->couponCode;
    
    // 通过优惠券代码获取优惠券详情(直接使用first()方法,以便一次性获取模型)
    $coupon = Coupon::where('couponCode', $couponCode)->first();
    
    // 在这里,您可以将模型作为JSON响应返回(在视图中使用`$data->couponName`)
    response()->json(['data' => $coupon]);
    
    // 或者您可以直接返回优惠券名称
    return $couponDetails->couponName;
    

    回复
    0
  • P粉807471604

    P粉8074716042023-08-21 11:54:50

    你得到的错误是因为你尝试访问的属性在类Illuminate\Http\JsonResponse中不存在。

    你有两种方法可以避免这个问题:

    1. 要么返回:

      return $coupon->couponName;
      
    2. 从JsonResponse类获取数据:

      return $couponDetails->getData()->couponName;
      

    回复
    0
  • 取消回复