Model factory em pt_BR 10

Model Factory é uma feature e tanto no Laravel 5.1. Só há um inconveniente: Os dados gerados são em inglês, e para muitos projetos/clientes isso nao é uma coisa boa.

Mas mudar isso é extremamente simples. Muitos não sabem mais o Faker, também está disponívem em pt_BR e em várias outras linguas.

Assumindo que você esta com uma instalação padrão do Laravel 5.1, basta apenas “dizer” ao Laravel que o objeto Fazer que será usado é o um custumizádo por você.

<?php
namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Faker\Generator as FakerGenerator;
use Faker\Factory as FakerFactory;

class AppServiceProvider extends ServiceProvider
{

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->singleton(FakerGenerator::class, function () {
            return FakerFactory::create('pt_BR');
        });
    }
}

Tão simples como tudo no Laravel.

  • http://www.jansenfelipe.com.br Jansen Felipe

    Muito bom!!!

    • http://luizvinicius.com.br/ Vinicius Reis

      Obrigado :)

  • Fabyo

    Muito bom

    eu costumo usar o metodo $faker->addprovider(), mas do seu jeito escreve menos codigo

    parabens

    • http://luizvinicius.com.br/ Vinicius Reis

      Posta ae como vc faz @fabyoguimaraes:disqus é sempre bom ter maneiras diferentes de fazer!
      Ae eu adiciono ao post :)

      • Fabyo

        dentro da ModelFactory.php

        $faker->addProvider(new FakerProviderpt_BRPerson($faker));

  • Carlos Marx

    Sempre mandando bem. @vinicius73:disqus é o cara!

    • http://luizvinicius.com.br/ Vinicius Reis

      :)

  • Denisbeder

    FakerGenerator::class não funcionou para mim então usei FakerGenerator::class e ficou tudo certo.

  • Guilherme Ludovice

    Bom dia, sou iniciante em Laravel.
    Estou com uma duvida, estou tentando gerar dados fake em portugues, no regsiter do provider inseri
    :
    use FakerGenerator as FakerGenerator;
    use FakerFactory as FakerFactory;

    $this->app->singleton(FakerGenerator::class,
    function () {
    return FakerFactory::create(‘pt_BR’);
    });

    A duvida está em como chamar no ModelFactory, pois quando uso o “php artisan Thinker” esta me retornando dados em ingles

    • Robinho de Morais

      Guilherme, mesmo caso que você, o meu continua em ingles, conseguiu fazer ?