请在下面的代码中查找表数据
$all_trades = FinalTrade::where('user_id', '=', $user_id)->where('market_id', '=', $market_id)->get();
$numbers_of_entries = $all_trades->count();
$l=0;
foreach ($all_trades as &$value) {
$value = $all_trades->pluck('buy_rate') * $all_trades->pluck('quantities');
$l++;
}
DD($l);
我的$all_trades->pluck('buy_rate')
和$all_trades->pluck('quantities')
拥有数组结果..我该如何相乘并获得数组结果?
浏览器中$all_trades->pluck('buy_rate')
的结果。
Collection {#1186 ▼
#items: array:12 [▼
0 => 2205
1 => 0
2 => 50351
3 => 0
4 => 40
5 => 1000
6 => 500
7 => 324
8 => 2342
9 => 2342
10 => 234
11 => 555656
]
}
实际上,我正试图将两行相乘。
答案 0 :(得分:1)
$all_trades = FinalTrade::where('user_id', '=', $user_id)->where('market_id', '=', $market_id)->get();
$total =[];
foreach ($all_trades as $value) {
$total[] = $value->buy_rate * $value->quantities;
}
dd($total);
答案 1 :(得分:0)
您的问题是您要在循环中调用集合的pluck,而不是利用集合的项目。
拥有物品本身时,不需要收集方法:
foreach ($all_trades as $item) {
$product = $item->buy_rate * $item->quantities;
}
您必须以某种方式利用$product
,否则它将在循环的每次迭代中被覆盖,但是我不知道您要如何处理此乘法问题的乘积。您很可能不想分配$value
作为参考,并像在问题中一样覆盖它。
如果您尝试将产品与收藏夹项目相关联,则可以添加一个新属性:
foreach ($all_trades as $item) {
$item->product = $item->buy_rate * $item->quantities;
}
现在$ all_trades中的每个项目都会有一个名为product的新属性,具有相应的值。由于对象始终通过引用传递,因此您无需使用&$item
。
答案 2 :(得分:0)
如果您在查询中进行乘法运算,则可能会获得更好的成功:
$all_trades = FinalTrade::where('user_id', '=', $user_id)
->where('market_id', '=', $market_id)
->select("*, (buy_rate*quantities) as total")
->get();
然后,每个条目除实际条目外还将具有total
属性,因此您可以执行以下操作:
$all_trades->pluck('total');