{"id":52335,"date":"2023-05-05T12:18:15","date_gmt":"2023-05-05T10:18:15","guid":{"rendered":"https:\/\/kinsta.com\/nl\/?p=52335&#038;preview=true&#038;preview_id=52335"},"modified":"2023-06-08T17:36:39","modified_gmt":"2023-06-08T15:36:39","slug":"laravel-model-factories","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/","title":{"rendered":"Zo genereer je nepgegevens met Laravel Model factories en gebruik je ze"},"content":{"rendered":"<p>Testen is een essentieel onderdeel van <a href=\"https:\/\/kinsta.com\/web-development\/\">webdevelopment<\/a>. Laravel Model factories defini\u00ebren databaserecords op een voorspelbare en gemakkelijk repliceerbare manier, zodat je app tests consistent en gecontroleerd zijn. Model factories defini\u00ebren een set standaard attributen voor elk van je Eloquent modellen.<\/p>\n<p>Als je bijvoorbeeld een blogging app maakt waarmee auteurs en moderators comments kunnen goedkeuren voordat ze live gaan, moet je testen of de functie goed werkt voordat je hem uitrolt naar je gebruikers. Voor dit alles zijn testgegevens nodig.<\/p>\n<p>Om de hierboven beschreven blogging app te testen, heb je commentdata nodig om de functionaliteit van je applicatie na te bootsen en te testen. Met <a href=\"https:\/\/kinsta.com\/nl\/blog\/laravel-10\/\">Laravel<\/a> kun je dat doen zonder comments van echte gebruikers te krijgen door Laravel factories en Faker te gebruiken om nepgegevens te genereren.<\/p>\n<p>Dit artikel legt uit hoe je commentdata krijgt zonder comments van echte gebruikers.<\/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>Voorwaarden<\/h2>\n<p>Om deze tutorial te voltooien moet je bekend zijn met het volgende:<\/p>\n<ul>\n<li>XAMPP<\/li>\n<li>Composer<\/li>\n<\/ul>\n<p><a href=\"https:\/\/kinsta.com\/nl\/onderwerpen\/xampp\/\">XAMPP<\/a> is een gratis en eenvoudig te installeren Apache distributie die PHP, Perl en MariaDB &#8211; een MySQL database &#8211; bevat. Deze handleiding gebruikt de nieuwste versie, 8.1.10, die PHP 8.1.10 installeert. Lees <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\">dit artikel<\/a> als je XAMPP voor MacOS installeert of <a href=\"https:\/\/ostechnix.com\/install-xampp-in-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\">deze gids<\/a> voor Linux. Deze handleiding gebruikt XAMPP op Windows.<\/p>\n<p>Composer is een tool waarmee je de pakketten waarvan je web app afhankelijk is in ontwikkeling en productie kunt defini\u00ebren, installeren en downloaden. Deze handleiding gebruikt <a href=\"https:\/\/getcomposer.org\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">versie v2.4.4<\/a> van Composer, waarvoor <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-benchmarks\/\">PHP versie 7.2+<\/a> nodig is. Je gebruikt Composer om het Laravel installatieprogramma voor deze tutorial te installeren.<\/p>\n<p>Je kunt ook de complete code voor het project downloaden om <a href=\"https:\/\/github.com\/multi-Adams\/laravel-factories-article\" target=\"_blank\" rel=\"noopener noreferrer\">mee<\/a> te volgen.<\/p>\n\n<h2>Het project opzetten<\/h2>\n<p>In dit deel ga je een Laravel project maken en het verbinden met een database. Laten we eens kijken wat dat allemaal inhoudt en hoe je dat kunt bereiken.<\/p>\n<h3>Installeer de Laravel installer<\/h3>\n<p>Om snel een Laravel project te maken, installeer je de Laravel installer:<\/p>\n<pre><code class=\"language-sh\">composer global require laravel\/installer<\/code><\/pre>\n<p>Deze code installeert de Laravel installer globaal op je machine.<\/p>\n<h3>Maak een Laravel project<\/h3>\n<p>Maak vervolgens <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#laravel\">een Laravel project<\/a> aan door het volgende uit te voeren:<\/p>\n<pre><code class=\"language-sh\">laravel new app-name<\/code><\/pre>\n<p>Deze code bootstrapt een nieuw Laravel project en installeert alle dependencies:<\/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=\"Het Laravel project aanmaken\" width=\"978\" height=\"510\"><figcaption class=\"wp-caption-text\">Het Laravel project aanmaken<\/figcaption><\/figure>\n<p>Een andere eenvoudigere manier om Laravel te installeren is door rechtstreeks Composer te gebruiken.<\/p>\n<pre><code class=\"language-sh\">composer create-project laravel\/laravel app-name<\/code><\/pre>\n<p>Je hoeft het Laravel installatieprogramma niet te installeren als je de bovenstaande methode gebruikt.<\/p>\n<h3>Start de app<\/h3>\n<p>Je kunt nu de map veranderen in <strong>app-name <\/strong>en het project starten met Laravels eigen command-line interface (CLI) tool, <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>Deze code start het project en verbindt het met localhost:8000 of een andere beschikbare poort als poort 8000 in gebruik is. Op localhost:8000 zou je zoiets als dit moeten zien:<\/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=\"Homepage van Laravel site\" width=\"771\" height=\"626\"><figcaption class=\"wp-caption-text\">Laravel<\/figcaption><\/figure>\n<h3>Maak een database aan<\/h3>\n<p>Om je app met een database te verbinden, moet je een nieuwe database aanmaken met de PHPMyAdmin grafische gebruikersinterface van XAMPP. Ga naar <strong>localhost\/phpmyadmin<\/strong> en klik op <b>New <\/b>in de zijbalk:<\/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=\"Maak database aan\" width=\"560\" height=\"144\"><figcaption class=\"wp-caption-text\">Maak database aan<\/figcaption><\/figure>\n<p>De afbeelding hierboven toont het formulier <strong>Create database <\/strong>met <strong>app_name<\/strong>\u00a0als databasenaam.<\/p>\n<p>Klik op <strong>Create<\/strong> om een database aan te maken.<\/p>\n<h3>Bewerk het .env bestand<\/h3>\n<p>Om je app met een database te verbinden, moet je het DB gedeelte van het <strong>.env<\/strong> bestand bewerken:<\/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>Deze code vult de databasegegevens met je databasenaam, gebruikersnaam, poort, wachtwoord en host. Je bent nu klaar om factories en models aan te maken.<\/p>\n<p><strong>Opmerking:<\/strong> Vervang de waarden door je databasegegevens. Als je de foutmelding &#8220;Access denied by user&#8221; tegenkomt, zet dan de waarden voor <code>DB_USERNAME<\/code> en <code>DB_PASSWORD<\/code> tussen dubbele aanhalingstekens.<\/p>\n<h2>Nepgegevens genereren<\/h2>\n<p>Na het maken van de app en het verbinden met de database, kun je nu de nodige bestanden maken om nepgegevens in de database te genereren.<\/p>\n<h3>Maak het commentmodel<\/h3>\n<p>Maak het modelbestand voor de interactie met de databasetabellen. Om een model te maken gebruik je Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan make:model Comment<\/code><\/pre>\n<p>Deze code maakt een <strong>Comment.php<\/strong> bestand binnen de <strong>app\/Models<\/strong> map met wat boilerplate code. Voeg de volgende code toe onder de regel <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>In deze code staan de velden die je bulktoewijzingen wilt toestaan, omdat Laravel je database standaard beschermt tegen bulktoewijzingen. Het modelbestand <strong>Comment<\/strong> moet er nu zo uitzien:<\/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=\"Modelbestand comments\" width=\"1492\" height=\"858\"><figcaption class=\"wp-caption-text\">Modelbestand comments<\/figcaption><\/figure>\n<h3>Maak het migratiebestand<\/h3>\n<p>Nadat je het modelbestand hebt gemaakt en de array <code>$fillable<\/code> hebt gedeclared, moet je het migratiebestand maken met het onderstaande commando:<\/p>\n<pre><code class=\"language-sh\">php artisan make:migration create_comments_table<\/code><\/pre>\n<p><strong>Opmerking:<\/strong> De naamgevingsstructuur voor het maken van migraties in Laravel is meestal <code><a href=\"https:\/\/en.wikipedia.org\/wiki\/Snake_case\" target=\"_blank\" rel=\"noopener noreferrer\">snake_case<\/a><\/code>, ook bekend als <code>underscore_case<\/code>. Het eerste woord is de actie, het tweede woord is een meervoud van het model, en het laatste woord is de eigenschap die binnen het project wordt aangemaakt. Dit betekent dat je <code>create_books_table<\/code> schrijft als je een migratie maakt voor een Book model.<\/p>\n<p>Deze code maakt een bestand aan met de naam <strong>yyyy_mm_dd_hhmmss_create_comments_table<\/strong> in de map <strong>database\/migrations<\/strong>.<\/p>\n<p>Bewerk vervolgens de up functie in <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>Deze code maakt een schema dat een tabel aanmaakt met de kolommen: <code>id<\/code>, <code>name<\/code>, <code>email<\/code>, <code>body<\/code>, <code>approved<\/code>, <code>likes<\/code>, en <code>timestamps<\/code>.<\/p>\n<h3>Voer de migraties uit<\/h3>\n<p>Het aanmaken en bewerken van het migratiebestand doet niets totdat je ze uitvoert met de opdrachtregel. Als je naar de databasemanager kijkt, is die nog steeds leeg.<\/p>\n<p>Voer de migraties uit met Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan migrate<\/code><\/pre>\n<p>Dit commando voert alle migraties uit binnen <strong>database\/migrations<\/strong> omdat het de eerste migratie is sinds het aanmaken van de app:<\/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=\"Succesvolle migraties\" width=\"980\" height=\"511\"><figcaption class=\"wp-caption-text\">Succesvolle migraties<\/figcaption><\/figure>\n<p>De volgende afbeelding toont alle migratiebestanden die je hebt uitgevoerd. Elk staat voor een tabel in de database:<\/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=\"Database na migraties\" width=\"1064\" height=\"247\"><figcaption class=\"wp-caption-text\">Database na migraties<\/figcaption><\/figure>\n<h3>Maak het CommentFactory bestand<\/h3>\n<p>Maak een factory bestand dat je definition functie bevat. Voor deze demonstratie maak je een factory met behulp van Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan make:factory CommentFactory.php<\/code><\/pre>\n<p>Deze code maakt een <strong>CommentFactory<\/strong><strong>.php<\/strong> bestand in de map <strong>database\/factories<\/strong>.<\/p>\n<h3>De definition functie<\/h3>\n<p>De functie in <strong>CommentFactory<\/strong> definieert hoe <a href=\"https:\/\/fakerphp.github.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Faker<\/a> nepgegevens genereert. Bewerk hem zodat hij er zo uitziet:<\/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>Deze code vertelt Faker het volgende te genereren:<\/p>\n<ul>\n<li>Een naam<\/li>\n<li>Een e-mailadres<\/li>\n<li>Een paragraaf die 45 zinnen bevat<\/li>\n<li>Een goedgekeurde waarde die alleen waar of onwaar kan zijn<\/li>\n<li>Een willekeurig getal tussen 0 en 9999<\/li>\n<\/ul>\n<h3>Het commentmodel koppelen aan de CommentFactory<\/h3>\n<p>Koppel het <code>Comment<\/code> model aan <code>CommentFactory<\/code> door boven de definitie een beschermde <code>$model<\/code> variabele te declaren:<\/p>\n<pre><code class=\"language-php\">protected $model = Comment::class;<\/code><\/pre>\n<p>Voeg ook de <code>use <span id=\"urn:enhancement-a69b5f7a-a3d6-456a-88ad-0839266b50eb\" class=\"textannotation\">App<\/span>\\Models\\<span id=\"urn:enhancement-a61836bd-2ae8-4835-a54d-494ab7351463\" class=\"textannotation\">Comment<\/span>;<\/code>\u00a0toe aan de bestandsdependencies. Het <strong>CommentFactory<\/strong> bestand zou er nu zo uit moeten zien:<\/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=\"Het CommentFactory bestand\" width=\"1492\" height=\"1268\"><figcaption class=\"wp-caption-text\">Het CommentFactory bestand<\/figcaption><\/figure>\n<h2>De database seeden<\/h2>\n<p>Seeding in programmeren betekent het genereren van willekeurige nepgegevens voor een database voor testdoeleinden.<\/p>\n<p>Nu je het model hebt gemaakt, migraties hebt uitgevoerd en de definitie in CommentFactory hebt gemaakt, voer je de seeder uit met behulp van het <strong>DatabaseSeeder<\/strong> bestand.<\/p>\n<h3>Maak het CommentSeeder bestand<\/h3>\n<p>Maak een <strong>seeder<\/strong> bestand dat factory gebruikt om de gegevens te genereren:<\/p>\n<pre><code class=\"language-sh\">php artisan make:seeder CommentSeeder.php<\/code><\/pre>\n<p>Deze code maakt een <strong>CommentSeeder<\/strong><strong>.php<\/strong> bestand binnen de <strong>database\/seeders<\/strong> map.<\/p>\n<h3>Bewerk de run functie<\/h3>\n<p>Verbind het Comment model met de CommentSeeder. Voeg de volgende code toe binnen de run functie:<\/p>\n<pre><code class=\"language-php\">Comment::factory()-&gt;count(50)-&gt;create();<\/code><\/pre>\n<p>Deze code vertelt de CommentSeeder om het Comment model en de CommentFactory&#8217;s definition functie te gebruiken om 50 comments in de database te genereren. Voeg ook de <code>use <span id=\"urn:enhancement-a69b5f7a-a3d6-456a-88ad-0839266b50eb\" class=\"textannotation\">App<\/span>\\Models\\<span id=\"urn:enhancement-a61836bd-2ae8-4835-a54d-494ab7351463\" class=\"textannotation\">Comment<\/span>;<\/code>\u00a0toe aan de bestandsdependencies. Het <strong>CommentSeeder<\/strong> bestand zou er nu zo uit moeten zien:<\/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=\"CommentSeeder bestand\" width=\"1492\" height=\"896\"><figcaption class=\"wp-caption-text\">CommentSeeder bestand<\/figcaption><\/figure>\n<p><strong>Opmerking:<\/strong> Je kunt Faker configureren om lokale gegevens aan te maken. Je kunt bijvoorbeeld instellen dat het Italiaanse namen genereert in plaats van willekeurige namen door <code>faker_locale<\/code> in het <strong>app\/config.php<\/strong> bestand in te stellen op <code>it_IT<\/code>. Je kunt meer lezen over Faker Locales in deze <a href=\"https:\/\/fakerphp.github.io\/locales\/it_IT\/\" target=\"_blank\" rel=\"noopener noreferrer\">gids<\/a>.<\/p>\n<h3>Voer de seeder uit<\/h3>\n<p>Voer vervolgens het <strong>seederbestand<\/strong> uit met Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan db:seed --class=CommentSeeder<\/code><\/pre>\n<p>Deze code voert het <strong>seeder bestand<\/strong> uit en genereert 50 rijen nepgegevens in de database.<\/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=\"Database seed succesvol\" width=\"977\" height=\"164\"><figcaption class=\"wp-caption-text\">Database seed succesvol<\/figcaption><\/figure>\n<p>De database zou nu 50 rijen nepgegevens moeten hebben die je kunt gebruiken om de functies van je applicatie te testen:<\/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 rijen gegevens in de database\" width=\"1340\" height=\"787\"><figcaption class=\"wp-caption-text\">50 rijen gegevens in de database<\/figcaption><\/figure>\n<h2>De database resetten<\/h2>\n<p>Als je de gegenereerde gegevens gebruikt om te testen, reset dan de database telkens als je een test uitvoert. Stel dat je de goedgekeurde commentfunctie wilt testen. Ververs de database na elke test om te voorkomen dat de eerder gegenereerde gegevens toekomstige tests verstoren.<\/p>\n<h3>Gebruik RefreshDatabase<\/h3>\n<p>Ververs de database met behulp van de property <code>RefreshDatabase<\/code> in het <strong>test bestand<\/strong>.<\/p>\n<p>Navigeer naar <strong>ExampleTest.php<\/strong> in de map <strong>Tests\/Feature<\/strong> naar de comment <code>use Illuminate\\Foundation\\<span id=\"urn:enhancement-0bdc2eaf-f270-4896-bd72-50b0f4eef66a\" class=\"textannotation\">Testing<\/span>\\RefreshDatabase;<\/code>\u00a0en voeg de volgende regel code toe boven de functie <code>test_the_application_returns_a_successful_response<\/code>:<\/p>\n<pre><code class=\"language-php\">use RefreshDatabase;<\/code><\/pre>\n<p>Het bestand <strong>ExampleTest.php<\/strong> moet er nu zo uitzien:<\/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=\"ExampleTest bestand\" width=\"1492\" height=\"932\"><figcaption class=\"wp-caption-text\">ExampleTest bestand<\/figcaption><\/figure>\n<h3>Voer de test uit<\/h3>\n<p>Nadat je de property <code>RefreshDatabase<\/code> hebt toegevoegd aan het testbestand, voer je de test uit met Artisan:<\/p>\n<pre><code class=\"language-sh\">php artisan test<\/code><\/pre>\n<p>Deze code voert alle tests in de app uit en ververst de database na de tests, zoals in de afbeelding hieronder:<\/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=\"Een geslaagde Artisan test\" width=\"421\" height=\"178\"><figcaption class=\"wp-caption-text\">Een geslaagde Artisan test<\/figcaption><\/figure>\n<p>Controleer nu de database om de lege commenttabel te zien:<\/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=\"Database zonder comments\" width=\"545\" height=\"277\"><figcaption class=\"wp-caption-text\">Database zonder comments<\/figcaption><\/figure>\n\n<h2>Samenvatting<\/h2>\n<p>Dit artikel behandelde hoe je een Laravel project maakt, het verbindt met een <a href=\"https:\/\/sevalla.com\/database-hosting\/\">database<\/a>, en modellen, migratie, factory en seeder bestanden maakt en configureert om willekeurige gegevens voor de database te genereren. Het besprak ook hoe je de database kunt resetten na het uitvoeren van tests.<\/p>\n<p>Je hebt nu gezien hoe Laravel factories en Faker het gemakkelijk maken om in enkele minuten zowat elke hoeveelheid testgegevens te genereren om een applicatie te testen of zelfs als placeholder &#8211; met minimale configuratie.<\/p>\n<p>Als je Laravel app klaar is om te deployen, kun je dat snel en effici\u00ebnt doen op Kinsta&#8217;s <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Applicatie Hosting diensten<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Testen is een essentieel onderdeel van webdevelopment. Laravel Model factories defini\u00ebren databaserecords op een voorspelbare en gemakkelijk repliceerbare manier, zodat je app tests consistent en gecontroleerd &#8230;<\/p>\n","protected":false},"author":259,"featured_media":52336,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[],"class_list":["post-52335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"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>Zo genereer je nepgegevens en gebruik je ze met Laravel Model factories - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.\" \/>\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\/nl\/blog\/laravel-model-factories\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zo genereer je nepgegevens met Laravel Model factories en gebruik je ze\" \/>\n<meta property=\"og:description\" content=\"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-05T10:18:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-08T15:36:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/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=\"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Zo genereer je nepgegevens met Laravel Model factories en gebruik je ze\",\"datePublished\":\"2023-05-05T10:18:15+00:00\",\"dateModified\":\"2023-06-08T15:36:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/\"},\"wordCount\":1645,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg\",\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/\",\"name\":\"Zo genereer je nepgegevens en gebruik je ze met Laravel Model factories - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg\",\"datePublished\":\"2023-05-05T10:18:15+00:00\",\"dateModified\":\"2023-06-08T15:36:39+00:00\",\"description\":\"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zo genereer je nepgegevens met Laravel Model factories en gebruik je ze\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/nl\/#website\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"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\/nl\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Zo genereer je nepgegevens en gebruik je ze met Laravel Model factories - Kinsta\u00ae","description":"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.","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\/nl\/blog\/laravel-model-factories\/","og_locale":"nl_NL","og_type":"article","og_title":"Zo genereer je nepgegevens met Laravel Model factories en gebruik je ze","og_description":"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.","og_url":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2023-05-05T10:18:15+00:00","article_modified_time":"2023-06-08T15:36:39+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg","type":"image\/jpeg"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg","twitter_creator":"@Kinsta_NL","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Steve Bonisteel","Geschatte leestijd":"11 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Zo genereer je nepgegevens met Laravel Model factories en gebruik je ze","datePublished":"2023-05-05T10:18:15+00:00","dateModified":"2023-06-08T15:36:39+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/"},"wordCount":1645,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg","inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/","url":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/","name":"Zo genereer je nepgegevens en gebruik je ze met Laravel Model factories - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg","datePublished":"2023-05-05T10:18:15+00:00","dateModified":"2023-06-08T15:36:39+00:00","description":"Laravel Model factories defini\u00ebren database records op een voorspelbare en gemakkelijk repliceerbare manier. Leer hoe je commentdata krijgt zonder echte gebruikers nodig te hebben.","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-model-factories.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-model-factories\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Zo genereer je nepgegevens met Laravel Model factories en gebruik je ze"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/nl\/#website","url":"https:\/\/kinsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","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\/nl\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/52335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/users\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=52335"}],"version-history":[{"count":10,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/52335\/revisions"}],"predecessor-version":[{"id":53084,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/52335\/revisions\/53084"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/nl"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/se"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/translations\/dk"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52335\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/52336"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=52335"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=52335"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=52335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}