簡體   English   中英

無法理解如何從查詢結果中提取數據

[英]Having trouble understanding how to extract the data out of the result from a query

我是 Laravel/Eloquent 的新手,我無法理解如何從查詢結果中提取數據。

在 Laravel 中,我在控制器中調用以下查詢

$purchase['purchase_price_total_LY'] = DB::table('coins')
        ->select(DB::raw('SUM (purchase_price) as purchase_price_total_LY'))
        ->where('user_email', '=', auth()->user()->email)
        ->whereBetween(DB::raw('DATE(purchase_date)'), [$range_lastyr_start, $range_lastyr_end])
        ->get();

並將結果傳遞回返回中的視圖,如下所示:

return view ('pages.financials', compact('user', 'purchase'));

在視圖中:

<td>Purchase Price:</td><td><a> {{$purchase['purchase_price_total_LY']}}</a></td>

視圖中的結果是這樣的:

[{"purchase_price_total_ly":"37"}]

當我做一個 dd($purchase, $purchase['purchase_price_total_LY']); 我看到以下內容:

array:1 [▼
  "purchase_price_total_LY" => Illuminate\Support\Collection {#548 ▼
    #items: array:1 [▼
      0 => {#547 ▼
        +"purchase_price_total_ly": "37"
      }
    ]
  }
]
Illuminate\Support\Collection {#548 ▼
  #items: array:1 [▼
    0 => {#547 ▼
      +"purchase_price_total_ly": "37"
    }
  ]
}

從視圖中的數組中提取 37 的最合適方法是什么?

如果只打算從數據庫返回 1 個值,則可以像這樣將 get 更改為第一個

$purchase['purchase_price_total_LY'] = optional(DB::table('coins')
        ->select(DB::raw('SUM (purchase_price) as purchase_price_total_LY'))
        ->where('user_email', '=', auth()->user()->email)
        ->whereBetween(DB::raw('DATE(purchase_date)'), [$range_lastyr_start, $range_lastyr_end])
        ->first())->purchase_price_total_LY;

是的,那奏效了。

我也嘗試了以下方法,它也有效。 我將控制器查詢更改為使用“->first()”並更改變量

$purchase_price_total_LY = DB::table('coins')
            ->select(DB::raw('SUM (purchase_price) as purchase_price_total_LY'))
            ->where('user_email', '=', auth()->user()->email)
            ->whereBetween(DB::raw('DATE(purchase_date)'), [$range_lastyr_start, $range_lastyr_end])
            ->first();

然后將返回更改為:

return view ('pages.financials', compact('user', 'purchase_price_total_LY')

然后在視圖中我改為:

<tr><td>Purchase Price:</td><td><a>{{$purchase_price_total_LY->purchase_price_total_ly }}</a></td>

現在我的答案是 37。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM