/** * Store a newly created resource in storage. * * @return Response */ public function store(Request $request) { // create a new listing $vendor = new Vendor(); $vendor->name = $request->name; $vendor->email = $request->email; $vendor->business = $request->business; $vendor->phone = $request->phone; $vendor->rent = $request->rent; $vendor->rate = $request->rate; $vendor->status = $request->status; $vendor->notes = $request->notes; $vendor->email_notification = $request->email_notification; $vendor->touch(); // sync codes if ($request->codes) { $newCodes = array(); $codes = array(); foreach ($request->codes as $code) { array_push($newCodes, $code['name']); $code['vendor_id'] = $vendor->id; $code = Code::firstOrCreate($code); array_push($codes, $code); } foreach ($codes as $code) { if (!in_array($code['name'], $newCodes)) { $code->delete(); } } } return response(Vendor::with(['codes'])->find($vendor->id), 200); }