middleware('guest'); } /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'senha' => ['required', 'string', 'min:8', 'confirmed'], 'cpf' => ['required', 'cpf', 'unique:users'], 'celular' => ['required', 'string', 'telefone'], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], 'instituicaoSelect' => ['required_without:instituicao'], 'cargo' => ['required'], 'vinculo' => ['required'], 'outro' => ['required_if:vinculo,Outro'], 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], 'titulacaoMaxima' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'], 'anoTitulacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'], 'areaFormacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], 'bolsistaProdutividade' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), 'nivel' => ['required_if:bolsistaProdutividade,sim'], //'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''], ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data) { //dd($data); $user = new User(); $user->name = $data['name']; $user->email = $data['email']; $user->password = bcrypt($data['senha']); $user->cpf = $data['cpf']; $user->celular = $data['celular']; if ($data['instituicao'] != null) { $user->instituicao = $data['instituicao']; } else if (isset($data['instituicaoSelect']) && $data['instituicaoSelect'] != "Outra") { $user->instituicao = $data['instituicaoSelect']; } if ($data['cargo'] === "Estudante" && $data['vinculo'] !== "Pós-doutorando") { $user->tipo = 'participante'; $user->save(); $participante = new Participante(); $user->participantes()->save($participante); } else { $user->tipo = 'proponente'; $user->save(); $proponente = new Proponente(); if ($data['SIAPE'] != null) { $proponente->SIAPE = $data['SIAPE']; } $proponente->cargo = $data['cargo']; if ($data['vinculo'] != 'Outro') { $proponente->vinculo = $data['vinculo']; } else { $proponente->vinculo = $data['outro']; } $proponente->titulacaoMaxima = $data['titulacaoMaxima']; $proponente->anoTitulacao = $data['anoTitulacao']; $proponente->areaFormacao = $data['areaFormacao']; $proponente->bolsistaProdutividade = $data['bolsistaProdutividade']; if ($data['bolsistaProdutividade'] == 'sim') { $proponente->nivel = $data['nivel']; } $proponente->linkLattes = $data['linkLattes']; $user->proponentes()->save($proponente); } return $user; } public function showRegistrationForm() { return view('auth.register'); } }