{"id":59286,"date":"2023-10-05T07:19:48","date_gmt":"2023-10-05T10:19:48","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=59286&#038;preview=true&#038;preview_id=59286"},"modified":"2023-10-25T12:36:33","modified_gmt":"2023-10-25T15:36:33","slug":"laravel-model-factories","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/","title":{"rendered":"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel"},"content":{"rendered":"<p>Testar \u00e9 essencial para o\u00a0<a href=\"https:\/\/kinsta.com\/web-development\/\">desenvolvimento web<\/a>. O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel, para que os testes do seu aplicativo sejam consistentes e controlados. O Model Factories definem um conjunto de atributos padr\u00e3o para cada um dos seus modelos Eloquent.<\/p>\n<p>Por exemplo, se voc\u00ea estiver criando um aplicativo de blog que permita que autores e moderadores aprovem coment\u00e1rios antes que eles sejam publicados, precisar\u00e1 testar se a fun\u00e7\u00e3o funciona corretamente antes de implant\u00e1-la para os usu\u00e1rios. Tudo isso requer dados de teste.<\/p>\n<p>Para testar o aplicativo de blog descrito acima, voc\u00ea precisa de dados de coment\u00e1rios para imitar e testar a funcionalidade do seu aplicativo. O <a href=\"https:\/\/kinsta.com\/pt\/blog\/laravel-10\/\">Laravel<\/a> permite que voc\u00ea fa\u00e7a isso sem obter coment\u00e1rios de usu\u00e1rios reais, usando o Model Factories\u00a0e o Faker para gerar dados falsos.<\/p>\n<p>Este artigo explica como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Pr\u00e9-requisitos<\/h2>\n<p>Para concluir este tutorial, voc\u00ea deve estar familiarizado com o seguinte:<\/p>\n<ul>\n<li>XAMPP<\/li>\n<li>Composer<\/li>\n<\/ul>\n<p>O <a href=\"https:\/\/kinsta.com\/pt\/topicos\/xampp\/\">XAMPP<\/a> \u00e9 uma distribui\u00e7\u00e3o gratuita e f\u00e1cil de instalar do Apache que cont\u00e9m PHP, Perl e MariaDB, um banco de dados MySQL. Este tutorial usa a vers\u00e3o mais recente, 8.1.10, que instala o PHP 8.1.10. Leia <a href=\"https:\/\/medium.com\/analytics-vidhya\/download-and-install-xampp-on-mac-oshow-to-download-and-install-xampp-on-mac-os-97705974080d\" target=\"_blank\" rel=\"noopener noreferrer\">este artigo<\/a> se voc\u00ea estiver instalando o XAMPP para MacOS ou <a href=\"https:\/\/ostechnix.com\/install-xampp-in-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\">este guia<\/a> para Linux. Este tutorial usa o XAMPP no Windows.<\/p>\n<p>O Composer \u00e9 uma ferramenta que permite que voc\u00ea defina, instale e baixe os pacotes dos quais seu aplicativo web depende no desenvolvimento e na produ\u00e7\u00e3o. Este tutorial usa a <a href=\"https:\/\/getcomposer.org\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">vers\u00e3o v2.4.4<\/a> do Composer, que requer a <a href=\"https:\/\/kinsta.com\/pt\/blog\/benchmarks-definitivos-do-php\/\">vers\u00e3o 7.2+ do PHP<\/a>. No tutorial, utilizaremos o Composer para instalar o instalador do Laravel.<\/p>\n<p>Voc\u00ea tamb\u00e9m pode fazer o download do c\u00f3digo completo do projeto para <a href=\"https:\/\/github.com\/multi-Adams\/laravel-factories-article\" target=\"_blank\" rel=\"noopener noreferrer\">acompanh\u00e1-lo<\/a>.<\/p>\n\n<h2>Como configurar o projeto<\/h2>\n<p>Nesta se\u00e7\u00e3o, voc\u00ea criar\u00e1 um projeto Laravel e o conectar\u00e1 a um banco de dados. Vamos dar uma olhada em tudo o que isso implica e em como fazer isso.<\/p>\n<h3>Instalando o instalador do Laravel<\/h3>\n<p>Para criar um projeto Laravel rapidamente, voc\u00ea deve instalar o instalador do Laravel:<\/p>\n<pre><code class=\"language-sh\">composer global require laravel\/installer<\/code><\/pre>\n<p>Este c\u00f3digo instala o instalador do Laravel globalmente em seu computador.<\/p>\n<h3>Criando um projeto do Laravel<\/h3>\n<p>Em seguida, <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#laravel\">crie um projeto Laravel<\/a>\u00a0executando o seguinte:<\/p>\n<pre><code class=\"language-sh\">laravel new app-name<\/code><\/pre>\n<p>Esse c\u00f3digo inicializa um novo projeto Laravel e instala todas as depend\u00eancias:<\/p>\n<figure style=\"width: 978px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/creating-laravel-project.png\" alt=\"Criando o projeto Laravel.\" width=\"978\" height=\"510\"><figcaption class=\"wp-caption-text\">Criando o projeto Laravel.<\/figcaption><\/figure>\n<p>Outra maneira mais f\u00e1cil de <a href=\"https:\/\/kinsta.com\/pt\/blog\/instalar-laravel\/\">instalar o Laravel<\/a> \u00e9 usar o Composer diretamente.<\/p>\n<pre><code class=\"language-sh\">composer create-project laravel\/laravel app-name<\/code><\/pre>\n<p>Voc\u00ea n\u00e3o precisa instalar o instalador do Laravel ao usar o m\u00e9todo acima.<\/p>\n<h3>Iniciando o aplicativo<\/h3>\n<p>Agora voc\u00ea pode alterar o diret\u00f3rio para <strong>app-name<\/strong> e iniciar o projeto usando a ferramenta de interface de linha de comando (CLI) do pr\u00f3prio Laravel, o <a href=\"https:\/\/laravel.com\/docs\/9.x\/artisan#introduction\" target=\"_blank\" rel=\"noopener noreferrer\">Artisan<\/a>:<\/p>\n<pre><code class=\"language-sh\">php artisan serve<\/code><\/pre>\n<p>Esse c\u00f3digo inicia o projeto e o conecta ao localhost:8000 ou a qualquer outra porta dispon\u00edvel se a porta 8000 estiver em uso. Em localhost:8000, voc\u00ea dever\u00e1 ver algo como isso:<\/p>\n<figure style=\"width: 771px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/laravel-website-homepage.png\" alt=\"Laravel.\" width=\"771\" height=\"626\"><figcaption class=\"wp-caption-text\">Laravel.<\/figcaption><\/figure>\n<h3>Criando um banco de dados<\/h3>\n<p>Para conectar seu aplicativo a um banco de dados, voc\u00ea deve criar um novo banco de dados usando a interface gr\u00e1fica do usu\u00e1rio PHPMyAdmin do XAMPP. Acesse <strong>localhost\/phpmyadmin<\/strong> e clique em <strong>New <\/strong>na barra lateral:<\/p>\n<figure style=\"width: 560px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/create-database-form.png\" alt=\"Criar formul\u00e1rio de banco de dados.\" width=\"560\" height=\"144\"><figcaption class=\"wp-caption-text\">Criar formul\u00e1rio de banco de dados.<\/figcaption><\/figure>\n<p>A imagem acima mostra o formul\u00e1rio <strong>Create Database<\/strong> com <strong>app_name<\/strong> como o nome do banco de dados.<\/p>\n<p>Clique em <strong>Create<\/strong> para criar um banco de dados.<\/p>\n<h3>Editando o arquivo .env<\/h3>\n<p>Para conectar seu aplicativo a um banco de dados, voc\u00ea deve editar a parte DB do arquivo <strong>.env<\/strong>:<\/p>\n<pre><code class=\"language-env\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=app_name\nDB_USERNAME=root\nDB_PASSWORD=<\/code><\/pre>\n<p>Esse c\u00f3digo preenche as credenciais do banco de dados com o nome do banco de dados, o nome de usu\u00e1rio, a porta, a senha e o host. Agora voc\u00ea est\u00e1 pronto para come\u00e7ar a criar o Model Factories.<\/p>\n<p><strong>Observa\u00e7\u00e3o<\/strong>: substitua os valores pelas credenciais do banco de dados que voc\u00ea possui. Al\u00e9m disso, se voc\u00ea encontrar o erro &#8220;Access denied for user&#8221;, coloque os valores <code>DB_USERNAME<\/code> e <code>DB_PASSWORD<\/code> entre aspas duplas.<\/p>\n<h2>Como gerar dados falsos<\/h2>\n<p>Ap\u00f3s criar o aplicativo e conect\u00e1-lo ao banco de dados, agora voc\u00ea pode criar os arquivos necess\u00e1rios para gerar dados falsos no banco de dados.<\/p>\n<h3>Criando o modelo de coment\u00e1rio<\/h3>\n<p>Crie o arquivo de modelo para interagir com as tabelas do banco de dados. Para criar um modelo, use o Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan make:model Comment<\/code><\/pre>\n<p>Esse c\u00f3digo cria um arquivo <strong>Comment.php<\/strong> dentro da pasta <strong>app\/Models<\/strong> com algum c\u00f3digo padr\u00e3o. Adicione o seguinte c\u00f3digo abaixo da linha <code>use HasFactory;<\/code>:<\/p>\n<pre><code class=\"language-php\"> protected $fillable = [\n      'name',\n      'email',\n      'body',\n      'approved',\n      'likes'\n    ];<\/code><\/pre>\n<p>Esse c\u00f3digo lista os campos que voc\u00ea deseja permitir atribui\u00e7\u00f5es em massa porque o Laravel protege seu banco de dados contra atribui\u00e7\u00f5es em massa por padr\u00e3o. Agora, o arquivo de modelo do <strong>Comment<\/strong> deve ter a seguinte apar\u00eancia:<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/carbon.png\" alt=\"Arquivo de modelo de coment\u00e1rio\" width=\"1492\" height=\"858\"><figcaption class=\"wp-caption-text\">Arquivo de modelo de coment\u00e1rio<\/figcaption><\/figure>\n<h3>Criando o arquivo de migra\u00e7\u00e3o<\/h3>\n<p>Ap\u00f3s criar o arquivo de modelo e declarar a array <code>$fillable<\/code>, voc\u00ea deve criar o arquivo de migra\u00e7\u00e3o usando o comando abaixo:<\/p>\n<pre><code class=\"language-sh\">php artisan make:migration create_comments_table<\/code><\/pre>\n<p><strong>Observa\u00e7\u00e3o<\/strong>: A conven\u00e7\u00e3o de nomenclatura para a cria\u00e7\u00e3o de migra\u00e7\u00f5es no Laravel geralmente \u00e9 <code><a href=\"https:\/\/en.wikipedia.org\/wiki\/Snake_case\" target=\"_blank\" rel=\"noopener noreferrer\">snake_case<\/a><\/code> tamb\u00e9m conhecido como <code>underscore_case<\/code>. A primeira palavra \u00e9 a a\u00e7\u00e3o, a segunda palavra \u00e9 um plural do modelo e a \u00faltima palavra \u00e9 o recurso criado dentro do projeto. Isso significa que voc\u00ea escrever\u00e1 <code>create_books_table<\/code> ao criar uma migra\u00e7\u00e3o para um modelo de livro.<\/p>\n<p>Esse c\u00f3digo cria um arquivo chamado <strong>yyyy_mm_dd_hhmmss_create_comments_table<\/strong> dentro da pasta <strong>database\/migrations<\/strong>.<\/p>\n<p>Em seguida, edite a fun\u00e7\u00e3o up dentro de <strong>yyyy_mm_dd_hhmmss_create_comments_table<\/strong>:<\/p>\n<pre><code class=\"language-php\">public function up()\n    {\n  Schema::create('comments', function (Blueprint $table) {\n    $table-&gt;id();\n    $table-&gt;string('name');\n    $table-&gt;string('email');\n    $table-&gt;longText('body');\n    $table-&gt;boolean('approved');\n    $table-&gt;integer('likes')-&gt;default(0);\n    $table-&gt;timestamps();\n    });\n    }<\/code><\/pre>\n<p>Esse c\u00f3digo cria um esquema que cria uma tabela com as colunas: <code>id<\/code>, <code>name<\/code>, <code>email<\/code>, <code>body<\/code>, <code>approved<\/code>, <code>likes<\/code>, e <code>timestamps<\/code>.<\/p>\n<h3>Executando as migra\u00e7\u00f5es<\/h3>\n<p>Criar e editar o arquivo de migra\u00e7\u00f5es n\u00e3o far\u00e1 nada at\u00e9 que voc\u00ea as execute usando a linha de comando. Se voc\u00ea observar o gerenciador de banco de dados, ele ainda estar\u00e1 vazio.<\/p>\n<p>Execute as migra\u00e7\u00f5es usando o Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan migrate<\/code><\/pre>\n<p>Esse comando executa todas as migra\u00e7\u00f5es dentro de <strong>database\/migrations<\/strong> porque \u00e9 a primeira migra\u00e7\u00e3o desde a cria\u00e7\u00e3o do aplicativo:<\/p>\n<figure style=\"width: 980px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/successful-migrations.png\" alt=\"Migra\u00e7\u00f5es bem-sucedidas\" width=\"980\" height=\"511\"><figcaption class=\"wp-caption-text\">Migra\u00e7\u00f5es bem-sucedidas<\/figcaption><\/figure>\n<p>A imagem a seguir mostra todos os arquivos de migra\u00e7\u00e3o que voc\u00ea executou. Cada um representa uma tabela no banco de dados:<\/p>\n<figure style=\"width: 1064px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/database-after-migrations.png\" alt=\"Banco de dados ap\u00f3s as migra\u00e7\u00f5es\" width=\"1064\" height=\"247\"><figcaption class=\"wp-caption-text\">Banco de dados ap\u00f3s as migra\u00e7\u00f5es<\/figcaption><\/figure>\n<h3>Criando o arquivo CommentFactory<\/h3>\n<p>Crie um arquivo de f\u00e1brica que contenha sua fun\u00e7\u00e3o de defini\u00e7\u00e3o. Para esta demonstra\u00e7\u00e3o, voc\u00ea criar\u00e1 uma f\u00e1brica usando o Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan make:factory CommentFactory.php<\/code><\/pre>\n<p>Esse c\u00f3digo cria um arquivo <strong>CommentFactory<\/strong><strong>.php<\/strong> dentro da pasta <strong>database\/factories<\/strong>.<\/p>\n<h3>A fun\u00e7\u00e3o de defini\u00e7\u00e3o<\/h3>\n<p>A fun\u00e7\u00e3o dentro de <strong>CommentFactory<\/strong> define como o <a href=\"https:\/\/fakerphp.github.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Faker<\/a> gera dados falsos. Edite para que fique assim:<\/p>\n<pre><code class=\"language-php\">public function definition()\n  {\n   return [\n     'name' =&gt; $this-&gt;faker-&gt;name(),\n     'email' =&gt; $this-&gt;faker-&gt;email(),\n     'body' =&gt; $this-&gt;faker-&gt;sentence(45),\n     'approved' =&gt; $this-&gt;faker-&gt;boolean(),\n     'likes' =&gt; $this-&gt;faker-&gt;randomNumber(5)\n     ];\n    }<\/code><\/pre>\n<p>Esse c\u00f3digo diz ao Faker para gerar o seguinte:<\/p>\n<ul>\n<li>Um nome<\/li>\n<li>Um endere\u00e7o de e-mail<\/li>\n<li>Um par\u00e1grafo que cont\u00e9m 45 frases<\/li>\n<li>Um valor aprovado que s\u00f3 pode ser verdadeiro ou falso<\/li>\n<li>Um n\u00famero aleat\u00f3rio entre 0 e 9999<\/li>\n<\/ul>\n<h3>Conectando o modelo de coment\u00e1rio ao CommentFactory<\/h3>\n<p>Vincule o modelo <code>Comment<\/code> a <code>CommentFactory<\/code> declarando uma vari\u00e1vel protegida <code>$model<\/code> acima da defini\u00e7\u00e3o:<\/p>\n<pre><code class=\"language-php\">protected $model = Comment::class;<\/code><\/pre>\n<p>Al\u00e9m disso, adicione o <code>use AppModelsComment;<\/code> \u00e0s depend\u00eancias do arquivo. Agora, o arquivo <strong>CommentFactory<\/strong> deve ter a seguinte apar\u00eancia:<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/comment-factory-file.png\" alt=\"O arquivo CommentFactory\" width=\"1492\" height=\"1268\"><figcaption class=\"wp-caption-text\">O arquivo CommentFactory<\/figcaption><\/figure>\n<h3>Como usar o Seeder no banco de sados<\/h3>\n<p>\u00a0<\/p>\n<p>Seeding em programa\u00e7\u00e3o significa gerar dados falsos aleat\u00f3rios para um banco de dados para fins de teste.<\/p>\n<p>Agora que voc\u00ea criou o modelo, executou migra\u00e7\u00f5es e criou a defini\u00e7\u00e3o dentro do CommentFactory, execute o seeder usando o arquivo <strong>DatabaseSeeder<\/strong>.<\/p>\n<h3>Criando o arquivo CommentSeeder<\/h3>\n<p>Crie um arquivo <strong>seeder<\/strong> que use o factory para gerar os dados:<\/p>\n<pre><code class=\"language-sh\">php artisan make:seeder CommentSeeder.php<\/code><\/pre>\n<p>Esse c\u00f3digo cria um arquivo <strong>CommentSeeder<\/strong><strong>.php<\/strong> dentro da pasta <strong>database\/seeders<\/strong>.<\/p>\n<h3>Editando a fun\u00e7\u00e3o Run<\/h3>\n<p>Conecte o modelo Comment ao CommentSeeder. Adicione o seguinte c\u00f3digo dentro da fun\u00e7\u00e3o de execu\u00e7\u00e3o:<\/p>\n<pre><code class=\"language-php\">Comment::factory()-&gt;count(50)-&gt;create();<\/code><\/pre>\n<p>Esse c\u00f3digo diz ao CommentSeeder para usar o modelo Comment e a fun\u00e7\u00e3o de defini\u00e7\u00e3o do CommentFactory para gerar 50 coment\u00e1rios dentro do banco de dados. Al\u00e9m disso, adicione o endere\u00e7o <code>use AppModelsComment;<\/code> \u00e0s depend\u00eancias do arquivo. Agora, o arquivo do <strong>CommentSeeder<\/strong> deve ter a seguinte apar\u00eancia:<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/comment-seeder-file.png\" alt=\"Arquivo CommentSeeder\" width=\"1492\" height=\"896\"><figcaption class=\"wp-caption-text\">Arquivo CommentSeeder<\/figcaption><\/figure>\n<p><strong>Observa\u00e7\u00e3o<\/strong>: Voc\u00ea pode configurar o Faker para criar dados locais. Por exemplo, voc\u00ea pode configur\u00e1-lo para gerar nomes italianos em vez de nomes aleat\u00f3rios, definindo <code>faker_locale<\/code> dentro do arquivo <strong>app\/config.php<\/strong> como <code>it_IT<\/code>. Voc\u00ea pode ler mais sobre o Faker Locales neste <a href=\"https:\/\/fakerphp.github.io\/locales\/it_IT\/\" target=\"_blank\" rel=\"noopener noreferrer\">guia<\/a>.<\/p>\n<h3>Executando o seeder<\/h3>\n<p>Em seguida, execute o arquivo <strong>seeder<\/strong> com o Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan db:seed --class=CommentSeeder<\/code><\/pre>\n<p>Esse c\u00f3digo executa o arquivo <strong>seeder<\/strong> e gera 50 linhas de dados falsos no banco de dados.<\/p>\n<figure style=\"width: 977px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/database-seed-successful.png\" alt=\"Semente de banco de dados bem-sucedida\" width=\"977\" height=\"164\"><figcaption class=\"wp-caption-text\">Semente de banco de dados bem-sucedida<\/figcaption><\/figure>\n<p>O banco de dados agora deve ter 50 linhas de dados falsos que voc\u00ea pode usar para testar as fun\u00e7\u00f5es do seu aplicativo:<\/p>\n<figure style=\"width: 1340px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/database-rows.png\" alt=\"50 linhas de dados no banco de dados\" width=\"1340\" height=\"787\"><figcaption class=\"wp-caption-text\">50 linhas de dados no banco de dados<\/figcaption><\/figure>\n<h2>Como redefinir o banco de dados<\/h2>\n<p>Ao usar os dados gerados para testes, redefina o banco de dados sempre que voc\u00ea executar um teste. Suponha que voc\u00ea queira testar o recurso de altern\u00e2ncia de coment\u00e1rios aprovados. Atualize o banco de dados ap\u00f3s cada teste para garantir que os dados gerados anteriormente n\u00e3o interfiram em testes futuros.<\/p>\n<h3>Use RefreshDatabase<\/h3>\n<p>Atualize o banco de dados usando a caracter\u00edstica <code>RefreshDatabase<\/code> dentro do arquivo de <strong>teste<\/strong>.<\/p>\n<p>Navegue at\u00e9 <strong>ExampleTest.php<\/strong> dentro da pasta <strong>tests\/Feature<\/strong> at\u00e9 o coment\u00e1rio <code>use IlluminateFoundationTestingRefreshDatabase;<\/code> e adicione a seguinte linha de c\u00f3digo acima da fun\u00e7\u00e3o <code>test_the_application_returns_a_successful_response<\/code>:<\/p>\n<pre><code class=\"language-php\">use RefreshDatabase;<\/code><\/pre>\n<p>Agora, o arquivo <strong>ExampleTest.php<\/strong> deve ter a seguinte apar\u00eancia:<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/example-test-file.png\" alt=\"Arquivo ExampleTest\" width=\"1492\" height=\"932\"><figcaption class=\"wp-caption-text\">Arquivo ExampleTest<\/figcaption><\/figure>\n<h3>Executando o teste<\/h3>\n<p>Depois de adicionar a caracter\u00edstica <code>RefreshDatabase<\/code> ao arquivo de teste, execute o teste usando o Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan test<\/code><\/pre>\n<p>Esse c\u00f3digo executa todos os testes no aplicativo e atualiza o banco de dados ap\u00f3s os testes, conforme mostrado na imagem abaixo:<\/p>\n<figure style=\"width: 421px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/successful-test.png\" alt=\"Um teste bem-sucedido do Artisan\" width=\"421\" height=\"178\"><figcaption class=\"wp-caption-text\">Um teste bem-sucedido do Artisan<\/figcaption><\/figure>\n<p>Agora, verifique o banco de dados para ver a tabela de coment\u00e1rios vazia:<\/p>\n<figure style=\"width: 545px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/empty-comments-database.png\" alt=\"Banco de dados de coment\u00e1rios vazio.\" width=\"545\" height=\"277\"><figcaption class=\"wp-caption-text\">Banco de dados de coment\u00e1rios vazio.<\/figcaption><\/figure>\n\n<h2>Resumo<\/h2>\n<p>Este artigo abordou como criar um projeto Laravel, conect\u00e1-lo a um <a href=\"https:\/\/sevalla.com\/database-hosting\/\">banco de dados<\/a> e criar e configurar modelos, migra\u00e7\u00e3o, factory e arquivos seeder para gerar dados aleat\u00f3rios para o banco de dados. Tamb\u00e9m foi discutido como redefinir o banco de dados ap\u00f3s a execu\u00e7\u00e3o de testes.<\/p>\n<p>Agora voc\u00ea viu como o Laravel Factories e o Faker facilitam a gera\u00e7\u00e3o de qualquer quantidade de dados de teste em minutos para testar um aplicativo ou at\u00e9 mesmo como um espa\u00e7o reservado &#8211; com configura\u00e7\u00e3o m\u00ednima.<\/p>\n<p>Quando seu aplicativo Laravel estiver pronto para ser implantado, voc\u00ea pode fazer isso rapidamente e de forma eficiente nos servi\u00e7os de <a style=\"font-size: 1rem\" href=\"https:\/\/sevalla.com\/application-hosting\/\">Hospedagem de Aplicativos da Kinsta<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Testar \u00e9 essencial para o\u00a0desenvolvimento web. O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel, para que os &#8230;<\/p>\n","protected":false},"author":259,"featured_media":59287,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[984],"class_list":["post-59286","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel<\/title>\n<meta name=\"description\" content=\"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel\" \/>\n<meta property=\"og:description\" content=\"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-05T10:19:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-25T15:36:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Steve Bonisteel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel\",\"datePublished\":\"2023-10-05T10:19:48+00:00\",\"dateModified\":\"2023-10-25T15:36:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/\"},\"wordCount\":1923,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/\",\"name\":\"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg\",\"datePublished\":\"2023-10-05T10:19:48+00:00\",\"dateModified\":\"2023-10-25T15:36:33+00:00\",\"description\":\"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"caption\":\"Steve Bonisteel\"},\"description\":\"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel","description":"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/","og_locale":"pt_PT","og_type":"article","og_title":"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel","og_description":"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.","og_url":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2023-10-05T10:19:48+00:00","article_modified_time":"2023-10-25T15:36:33+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg","type":"image\/jpeg"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg","twitter_creator":"@kinsta_pt","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Steve Bonisteel","Tempo estimado de leitura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel","datePublished":"2023-10-05T10:19:48+00:00","dateModified":"2023-10-25T15:36:33+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/"},"wordCount":1923,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/","url":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/","name":"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg","datePublished":"2023-10-05T10:19:48+00:00","dateModified":"2023-10-25T15:36:33+00:00","description":"O Model Factories do Laravel definem registros do banco de dados de maneira previs\u00edvel e facilmente replic\u00e1vel. Aprenda como obter dados de coment\u00e1rios sem coment\u00e1rios de usu\u00e1rios reais.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/05\/laravel-model-factories.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/laravel-model-factories\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/pt\/topicos\/laravel\/"},{"@type":"ListItem","position":3,"name":"Como Gerar e Utilizar Registros Falsos com Model Factories no Laravel"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","caption":"Steve Bonisteel"},"description":"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.","url":"https:\/\/kinsta.com\/pt\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/59286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=59286"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/59286\/revisions"}],"predecessor-version":[{"id":64313,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/59286\/revisions\/64313"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/nl"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/se"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/translations\/dk"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/59286\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/59287"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=59286"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=59286"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=59286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}