$all_trades = FinalTrade::where('user_id', '=', $user_id)->where('market_id', '=', $market_id)->get();
我正在尝试获取所有具有(col:buy_datetime
> col:sell_datetime
)和(col:buy_rate
* quantities
)的条目。
实际上试图使它成为变量。
从$all_trades
中,如何将单个列的整个记录存储在变量中?
例如,我要将col:quantities
存储到$ abc变量中。
答案 0 :(得分:1)
使用pluck
从集合中获取列
$abc = $all_trades->pluck('quantities');
答案 1 :(得分:0)
您可以在哪里使用raw,这种方法允许您为WHERE语句编写原始sql代码
FinalTrade::whereRaw('buy_datetime > sell_datetime')->get();
或者您可以尝试使用数据库表达式
FinalTrade::where('buy_datetime', '>' DB::raw('sell_datetime'))->get();
对于此列buy_rate * quantities
,您可以使用selectRaw方法
FinalTrade::where('buy_datetime', '>' DB::raw('sell_datetime'))
->selectRaw('buy_rate * quantities as column1')
->get();
`$finalTrades = FinalTrade::get();
$numbers_of_entries = $finalTrades->count();
$finalTrades->transform(function (FinalTrade $finalTrade) use
($numbers_of_entries) {
$finalTrade->result = ($finalTrade->quantities * $finalTrade->buy_rate) /
$numbers_of_entries;
return $finalTrade;
});`