public function placeBid($id, Request $request) { $highestbid = Bidder::where('FK_auction_id', '=', $id)->orderBy('bidAmount', 'desc')->first(); $validator = Validator::make($request->all(), ['bidAmount' => 'required|max:9999999|integer']); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $input = $request->all(); $auction = Auction::find($id); if ($input['bidAmount'] >= $auction->minPrice && $input['bidAmount'] <= $auction->maxPrice) { if ($highestbid == null) { $bidder = new Bidder(); $bidder->FK_user_id = Auth::user()->id; $bidder->FK_auction_id = $id; $bidder->bidAmount = $input['bidAmount']; $bidder->save(); $auction->currentPrice = $input['bidAmount']; $auction->FK_status_id = '3'; //active $auction->save(); $success = 'You have succesfully placed €' . $input['bidAmount'] . ' on this auction!'; return redirect()->back()->with('success', $success); } else { if ($input['bidAmount'] > $highestbid->bidAmount) { $bidder = new Bidder(); $bidder->FK_user_id = Auth::user()->id; $bidder->FK_auction_id = $id; $bidder->bidAmount = $input['bidAmount']; $bidder->save(); $auction->currentPrice = $input['bidAmount']; $auction->save(); $success = 'You have succesfully placed €' . $input['bidAmount'] . ' on this auction!'; return redirect()->back()->with('success', $success); } else { $warning = 'The current offer is €' . $highestbid->bidAmount . ' place a higher value to bid.'; return redirect()->back()->with('warning', $warning); } } } else { $warning = 'The minimum price is € ' . $auction->minPrice . ' and the maximum price is € ' . $auction->maxPrice . '.'; return redirect()->back()->with('warning', $warning); } }
public function bid(Request $request) { $this->validate($request, ['id' => 'required', 'prev' => 'required', 'bid' => 'required|greater_than_field:prev']); $auction = Auction::findOrFail($request->id); $auction->price = $request->bid; $auction->save(); $user = Auth::user(); $bidder = new Bidder(); $bidder->user()->save($user); $bidder->auction()->associate($auction); $bidder->price = $request->bid; $bidder->save(); return redirect('/art'); }