LaravelLegends / pt-br-validator

Uma biblioteca contendo validações de formatos Brasileiros, para o Laravel
https://wallacemaxters.com.br/blog/35/pt-br-validator-validacoes-em-portugues-no-laravel
MIT License
596 stars 101 forks source link

Erro ao Incluir validação #10

Closed tranquilodf closed 4 years ago

tranquilodf commented 6 years ago

Bom dia,

Utilizando a biblioteca e a mesma está me retornando o erro abaixo:

BadMethodCallException
Method [validateCpf] does not exist.

Segue as configurações que executei: composer.json

"require": {
        "php": ">=7.0.0",
        "davejamesmiller/laravel-breadcrumbs": "4.*",
        "fideloper/proxy": "~3.3",
        "jeroennoten/laravel-adminlte": "^1.23",
        "laravel/framework": "5.5.*",
        "laravel/tinker": "~1.0",
        "laravellegends/pt-br-validator" : "5.1.*"
    },

config/app.php

'aliases' => [

        'App' => Illuminate\Support\Facades\App::class,
        'Artisan' => Illuminate\Support\Facades\Artisan::class,
        'Auth' => Illuminate\Support\Facades\Auth::class,
        'Blade' => Illuminate\Support\Facades\Blade::class,
        'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
        'Bus' => Illuminate\Support\Facades\Bus::class,
        'Cache' => Illuminate\Support\Facades\Cache::class,
        'Config' => Illuminate\Support\Facades\Config::class,
        'Cookie' => Illuminate\Support\Facades\Cookie::class,
        'Crypt' => Illuminate\Support\Facades\Crypt::class,
        'DB' => Illuminate\Support\Facades\DB::class,
        'Eloquent' => Illuminate\Database\Eloquent\Model::class,
        'Event' => Illuminate\Support\Facades\Event::class,
        'File' => Illuminate\Support\Facades\File::class,
        'Gate' => Illuminate\Support\Facades\Gate::class,
        'Hash' => Illuminate\Support\Facades\Hash::class,
        'Lang' => Illuminate\Support\Facades\Lang::class,
        'Log' => Illuminate\Support\Facades\Log::class,
        'Mail' => Illuminate\Support\Facades\Mail::class,
        'Notification' => Illuminate\Support\Facades\Notification::class,
        'Password' => Illuminate\Support\Facades\Password::class,
        'Queue' => Illuminate\Support\Facades\Queue::class,
        'Redirect' => Illuminate\Support\Facades\Redirect::class,
        'Redis' => Illuminate\Support\Facades\Redis::class,
        'Request' => Illuminate\Support\Facades\Request::class,
        'Response' => Illuminate\Support\Facades\Response::class,
        'Route' => Illuminate\Support\Facades\Route::class,
        'Schema' => Illuminate\Support\Facades\Schema::class,
        'Session' => Illuminate\Support\Facades\Session::class,
        'Storage' => Illuminate\Support\Facades\Storage::class,
        'URL' => Illuminate\Support\Facades\URL::class,
        'Validator' => Illuminate\Support\Facades\Validator::class,
        'View' => Illuminate\Support\Facades\View::class,
        LaravelLegends\PtBrValidator\ValidatorProvider::class

    ],

testController.php

public function teste(array $data){
$return = Validator::make($data, [
            'name' => 'required|string|max:255',
            'doc' => 'required|max:11|**cpf**',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
        ]);
        dd($return->fails());
}

O que está faltando?

wallacemaxters commented 6 years ago

Eu vou dar uma conferida aqui. Eu acredito que a versão 5.3 >= do Laravel tenha feito algumas mudanças de estrutura na classe de validação.

Se eu confirmar o problema, envio uma atualização.

guilhermeureis commented 6 years ago

Aconteceu o mesmo erro comigo! Conseguiu achar a solução? @tranquilodf

LindolfoJunior commented 6 years ago

@guilhermeureis Consegui sim. Vai manualmente no arquivo config/app.php abaixo do comentário

* Package Service Providers... Você coloca

LaravelLegends\PtBrValidator\ValidatorProvider::class

Depois, lá no Validator basta colocar "cpf" que ele validará o CPF ou "cnpj" para validar o CNPJ.

A única coisa que ainda acho que precisaria ajustar é que ele faça um replace no valor que ele está recebendo para manter apenas número e assim fazer o cálculo e dar a resposta.

insign commented 6 years ago

Pois é, está no lugar errado, é nos providers e não nos facades

LindolfoJunior commented 6 years ago

@wallacemaxters depois atualiza lá no readme ok?

wallacemaxters commented 6 years ago

@LindolfoJunior Ok, atualizo sim. Eu estou meio apertado com o tempo para resolver os issues. Estou pensando em adicionar mais colaboradores à biblioteca, pra ficar mais fácil de organizarmos isso.

LindolfoJunior commented 6 years ago

@wallacemaxters Se pudermos ajudar, estamos aí.

silasrm commented 4 years ago

Continua com erro @wallacemaxters https://github.com/LaravelLegends/pt-br-validator/issues/20. Estou usando com o 6.* e está dando o mesmo erro, já coloquei no providers, limpei config, cache e nada.

LindolfoJunior commented 4 years ago

@silasrm você executou o procedimento que eu expliquei aqui?

silasrm commented 4 years ago

@silasrm você executou o procedimento que eu expliquei aqui?

image

Sim. Depois limpei cache, configuração e etc e continuou sem achar:


[2020-07-31 13:03:00] local.ERROR: Method Illuminate\Validation\Validator::validateCpf does not exist. {...,"exception":"[object] (BadMethodCallException(code: 0): Method Illuminate\\Validation\\Validator::validateCpf does not exist. at /var/www/vendor/laravel/framework/src/Illuminate/Validation/Validator.php:1308)
[stacktrace]
#0 /var/www/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(469): Illuminate\\Validation\\Validator->__call('validateCpf', Array)
#1 /var/www/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(311): Illuminate\\Validation\\Validator->validateAttribute('cpf', 'Cpf')
#2 /var/www/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(342): Illuminate\\Validation\\Validator->passes()
#3 /var/www/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php(25): Illuminate\\Validation\\Validator->fails()
tashima42 commented 4 years ago

Mesmo erro com o Laravel 8.11.2

Class 'PHPLegends\PtBrValidator\ValidatorProvider' not found
wallacemaxters commented 4 years ago

Mesmo erro com o Laravel 8.11.2

Class 'PHPLegends\PtBrValidator\ValidatorProvider' not found

No caso, o vendor-namespace da biblioteca é LaravelLegends. Sendo assim, em config/app.php, você precisa definir a classe \LaravelLegends\PtBrValidator\ValidatorProvider::class dentro da chave 'providers'.

O PHPLegends era o local onde antigamente o repositório estava hospedado, porém movi ela pra LaravelLegends já faz um tempo.