搜尋

首頁  >  問答  >  主體

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 天前578

全部回覆(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
  • 取消回覆