/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Request $request) { $user = User::find(Auth::user()->id); $rules = ['car_id' => 'required', 'city_id' => 'required', 'name' => 'required', 'phone' => 'required|min:7']; $messages = ['car_id.required' => 'Выберите марку автомобиля', 'city_id.required' => 'Выберите город', 'name.required' => 'Укажите свое имя', 'phone.required' => 'Укажите свой номер телефона', 'phone.min' => 'Укажите свой номер телефона']; $validator = Validator::make($request->all(), $rules, $messages); $validator->after(function ($validator) use($request) { if ($request->get('price_to') && $request->get('price_from') > $request->get('price_to')) { $validator->errors()->add('price_invalid', 'Значение "Цена, от" не может быть больше значения "Цена, до"'); } if ($request->get('year_to') && $request->get('year_from') > $request->get('year_to')) { $validator->errors()->add('year_invalid', 'Значение "Год выпуска, от" не может быть больше значения "Год выпуска, до"'); } }); if ($validator->fails()) { $this->throwValidationException($request, $validator); } $item = Inquiry::create($request->all() + ['user_id' => $user->id]); if ($request->has('carinfo')) { $carinfoFilled = false; foreach ($request->get('carinfo') as $value) { if ($value) { $carinfoFilled = true; break; } } if ($carinfoFilled) { Carinfo::create($request->get('carinfo') + ['inquiry_id' => $item->id]); } } $inquiry = Inquiry::with('car', 'carinfo', 'city')->findOrFail($item->id); if ($request->ajax()) { return response()->json(['status' => 'success', 'message' => 'Объявление сохранено', 'inquiry' => $inquiry]); } Flash::success("Запись - {$inquiry->id} сохранена"); return redirect('/'); }