Laravel - 从控制器中的多个字段计算最小值
Laravel - Calculate minimum value from multiple fields in controller
我想计算一组表单域的最小值。
我有一对多的关系,一个商店可以有很多商品并且工作正常没有任何错误。
我的表格
<form action="{{ route('form_submit') }}" method="post">
@csrf
<h3>Item 1</h3>
<input type="text" name="item[]">
<input type="text" name="price[]">
//Like this I can add many fields
<input type="submit">
</form>
控制器
public function store(Request $request, $id){
$shop = Shop::findorfail($id);
$item = Item::where('shop_id', $shop->id)->get(); //working fine
$i=0;
$price = request('price')
foreach( $items as $item)
$item->price = request('price')[$i];
$i++;
//I tried
$price_group = collect($item->price)->where('shop_id', $shop->id);
$min_price = min($price_group);
$item->save();
}
路线
Route::post('/{id}', 'Controller@store')->name('form_submit');
但不计算最低价。当我dd($min_price)
时,它完全空白。我在这里错过了什么?
我认为只是...
$items = Item::where('shop_id', $shop->id)->get();
$min = $items->min('price');
并查看关系的预加载。好多了。
我通过@Jonas的解决方案解决了这个问题。我把这个作为我的答案。
控制器
public function store(Request $request, $id){
$shop = Shop::findorfail($id);
$item = Item::where('shop_id', $shop->id)->get(); //working fine
$i=0;
$price = request('price')
foreach( $items as $item)
$item->price = request('price')[$i];
$i++;
//This works
$min_price = min(request('price'));
$item->save();
}
我想计算一组表单域的最小值。 我有一对多的关系,一个商店可以有很多商品并且工作正常没有任何错误。
我的表格
<form action="{{ route('form_submit') }}" method="post">
@csrf
<h3>Item 1</h3>
<input type="text" name="item[]">
<input type="text" name="price[]">
//Like this I can add many fields
<input type="submit">
</form>
控制器
public function store(Request $request, $id){
$shop = Shop::findorfail($id);
$item = Item::where('shop_id', $shop->id)->get(); //working fine
$i=0;
$price = request('price')
foreach( $items as $item)
$item->price = request('price')[$i];
$i++;
//I tried
$price_group = collect($item->price)->where('shop_id', $shop->id);
$min_price = min($price_group);
$item->save();
}
路线
Route::post('/{id}', 'Controller@store')->name('form_submit');
但不计算最低价。当我dd($min_price)
时,它完全空白。我在这里错过了什么?
我认为只是...
$items = Item::where('shop_id', $shop->id)->get();
$min = $items->min('price');
并查看关系的预加载。好多了。
我通过@Jonas的解决方案解决了这个问题。我把这个作为我的答案。
控制器
public function store(Request $request, $id){
$shop = Shop::findorfail($id);
$item = Item::where('shop_id', $shop->id)->get(); //working fine
$i=0;
$price = request('price')
foreach( $items as $item)
$item->price = request('price')[$i];
$i++;
//This works
$min_price = min(request('price'));
$item->save();
}