예제 #1
0
 /**
  * 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('/');
 }