/** * Store a newly created resource in storage. * * @return Response */ public function store(contractRequest $request) { // use my custom handler to fix dates, check if dates are valid and see if the stores are available to rent $contractFormHandler = new ContractFormHandler($request); if ($contractFormHandler->hasErrors) { \Session::flash('message', $contractFormHandler->errorMessages); \Session::flash('messageType', 'warning'); return redirect()->route('contracts.create')->withInput(); } // if all is ok $contract = new Contract(); $contract->description = $request->description; $contract->effective_date = $request->effective_date; $contract->expiry_date = $request->expiry_date; $contract->terms = $request->terms; $contract->signing_date = $request->signing_date; $contract->amount = $request->amount; $contract->currency = $request->currency; // associate with tenant $tenant = Tenant::findOrFail($request->tenant); $contract->tenant()->associate($tenant); $contract->save(); // attach properties foreach ($request->properties as $key => $property) { $propertyInFocus = Property::findOrFail($property); $contract->properties()->attach($propertyInFocus); } return redirect()->route('contracts.index'); }