Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Comando 'use' para arquivo de Request não encontrado

Retorna o seguinte erro:

Arguments
"Class App\Http\Requests\CadastroRequest does not exist"

Meu Controller:

<?

    namespace App\Http\Controllers;

    use Illuminate\Support\Facades\DB; // Banco de dados
    use Request; // Tratamento URI
    use Validator; // Validação
    use App\Cadastro; // Modelo
    use App\Http\Requests\CadastroRequest; // Regras do formulário

    class CadastroController extends Controller {

        // Formulário de Cadastro
        public function cadastro(){

            return view('cadastro.formulario');

        }

        // Registrar Usuário
        public function salvar( CadastroRequest $request ){

            Cadastro::create( $request->all() );
            return redirect('/cadastro/obrigado')->withInput();

        }

    }
?>

Meu CadastroRequest (root\app\Http\Requests\CadastroRequest)

<?php

    namespace App\Http\Requests;

    use Illuminate\Foundation\Http\FormRequest;

    class CadastroRequest extends FormRequest { 

        public function authorize() {
            return true;
        }

        public function rules() {
            return [
                # Informações de contato
                'nome' => 'required|min:10',
                'email' => 'required|min:10',
                'celular' => 'min:11|max:15',
                # Informações de acesso
                'senha' => 'required|numeric|min:|max:8',
                'rsenha' => 'required|numeric|min:3|max:8',
                # Informações de endereço
                'estado' => 'required|min:10',
                'cidade' => 'required|min:10',
                'cep' => 'required|min:10',
                'endereco' => 'required|min:10',
                'numero' => 'required|min:10',
                'bairro' => 'required|min:10',

            ];
        }

        public function messages(){

            return [
                'nome.required' => 'Você precisa informar seu nome.'
                'email.required' => 'Insira um e-mail valido, você precisa confirmar o registro.'
                'senha.required' => 'Senha é obrigatória.'
                'rsenha.required' => 'Confirmação da senha é obrigatória.'
                'estado.required' => 'Saber seu estado ajuda a lhe informar jogos acontecendo no seu estado.'
                'cidade.required' => 'Saber a cidade que mora ajuda a lhe informar os jogos próximos a você.'
                'cep.required' => 'Campo CEP é obrigatório.'
                'endereco.required' => 'Campo Endereço é obrigatório.'
                'numero.required' => 'Campo Número é obrigatório.'
                'bairro.required' => 'Campo Bairro é obrigatório.'
            ];

        }
    }

Estranho que esse CadastroRequest eu estou o mesmo que usei no curso, no cadastro que o curso ensina ele funcionava, agora ele da essa mensagem, o que fiz de errado?

3 respostas

composer update ?

Mesmo dando update no composer ele ainda não encontra a classe, o patch está correto e o arquivo está na pasta Requests, o que mais pode ser?

solução!

Encontrei o erro e ao mesmo tempo acho que isso deveria ser considerado um BUG do Laravel 5.5;

O Laravel estava sim encontrando o path do arquivo CadastroRequest, só que na função das messages() como eu dupliquei as linhas, eu esqueci de colocar virgula no final de cada array.

No PHP e outros frameworks que usei, ele te avisa que é um erro de sintax, já o laravel me retornou que o arquivo não tinha sido encontrado.