/**
  * @param Request $request
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  *
  * @var $user User
  * @var $userData UserData
  * @var $userSetting UserSetting
  */
 public function data(Request $request)
 {
     $user = User::find(Auth::user()->id);
     $userData = UserData::findOne($user->id);
     $userSetting = UserSetting::findOne($user->id);
     if ($request->isMethod('post')) {
         $messages = ['require' => 'The :attribute and :other must match.', 'same' => 'The :attribute and :other must match.', 'size' => 'The :attribute must be exactly :size.', 'between' => 'The :attribute must be between :min - :max.', 'in' => 'The :attribute must be one of the following types: :values', 'max' => 'Поле :attribute не должно быть длиной больше чем :value'];
         $data = $request->all();
         $validator = Validator::make($data, ['first_name' => 'max:100', 'last_name' => 'max:100', 'status' => 'max:255', 'country' => 'max:255', 'city' => 'max:255', 'hobby' => 'max:255', 'activity' => 'max:255', 'location' => 'max:255', 'date_of_birth' => 'max:10|date|date_format:"d.m.Y"|before:"now"', 'date_of_birth_view_type' => 'between:0,' . count(User::getDateViewTypes()), 'social_network_vk' => 'max:255', 'social_network_fb' => 'max:255', 'social_network_tw' => 'max:255', 'social_network_in' => 'max:255', 'social_network_skype' => 'max:255', 'social_homepage' => 'max:255', 'gender' => 'in:0,1', 'relationship' => 'between:0,' . count($user->getRelationship())], $messages);
         if ($validator->fails()) {
             $this->throwValidationException($request, $validator);
         }
         $userData->first_name = $data['first_name'];
         $userData->last_name = $data['last_name'];
         $userData->status = $data['status'];
         $userData->country = $data['country'];
         $userData->city = $data['city'];
         $userData->hobby = $data['hobby'];
         $userData->activity = $data['activity'];
         $userData->location = $data['location'];
         $userData->date_of_birth = $data['date_of_birth'];
         $userData->social_network_vk = $data['social_network_vk'];
         $userData->social_network_fb = $data['social_network_fb'];
         $userData->social_network_tw = $data['social_network_tw'];
         $userData->social_network_in = $data['social_network_in'];
         $userData->social_network_skype = $data['social_network_skype'];
         $userData->social_homepage = $data['social_homepage'];
         $userData->gender = $data['gender'];
         $userData->relationship = $data['relationship'];
         $userData->save();
         $userSetting->date_of_birth_view_type = $data['date_of_birth_view_type'];
         $userSetting->save();
         $request->session()->flash('message', trans('user::settings.saved'));
     }
     return view('user::settings/data', ['user' => $user, 'userData' => $userData]);
 }