Posted in

Seeds y uso de Faker en Laravel 5

Primero añadimos la llamada al archivo seeder que vamos a crear (UserTableSeeder) en el archivo DatabaseSeeder

{
Model::unguard();

$this->call('UserTableSeeder');
}

Creamos el archivo seeder UserTableSeeder

<?php

use Illuminate\Database\Seeder;

class UserTableSeeder extends Seeder {

public function run(){

\DB::table('users')->insert(array(
'name'}

Para ejecutar los seeds ejecutamos el migrate refresh que hace un rollback completo y vuelve a ejecutar los archivos migrates y añadirle el flag seed para que ejecute los seeds.

php artisan migrate:refresh --seed

O directamente que solo ejecute los seeds

php artisan db:seed

Faker es una librería para generar registros de forma automática para uso en testeos por ejemplo, para instalarlo escribimos lo siguiente en la consola.

composer require fzaninotto/faker

Instrucciones sobre su uso y propiedades

https://github.com/fzaninotto/Faker
En el siguiente ejemplo crearemos un registro para introducirlo en la tabla users.

<?php

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;

class UserTableSeeder extends Seeder {

public function run(){

$faker = Faker::create();

\DB::table('users')->insert(array(
'name'ame,
'email'ique()->email(),
'password'=> \Hash::make('secret')
));
}
}

En el siguiente ejemplo crearemos 30 registros.

<?php

use Illuminate\Database\Seeder;
use Faker\Factory as Faker;

class UserTableSeeder extends Seeder {

public function run(){

$faker = Faker::create();

for($i = 0, $i < 30; $i ++){

\DB::table('users')->insert(array(
'name'ame,
'email'ique()->email(),
'password'=> \Hash::make('secret')
));
}
}
}

En el siguiente ejemplo crearemos 30 registros en la tabla users y sus relacionados en la tabla user_profiles

<?php

use Illuminate\Database\seeder;
use Faker\Factory as Faker;

class UserTableSeeder extends Seeder {

public function run(){

$faker = Faker::create();

for($i = 0; $i < 30; $i ++){

$id = \DB::table('users')->insertGetId(array(
'name'ame,
'email'ique()->email(),
'password'=> \Hash::make('secret')
));

\DB::table('user_profiles')->insert(array(
'bio'd(2, 5)),
'twitter'=> 'http://www.twitter.com/' . $faker->userName,
'website'=> 'http://www.' . $faker->domainName,
'user_id'=> $id,
));
}
}
}

Si nos devolviera un error de que no encuentra la clase no olvidemos hacer un auto dumpload, seguramente cuando hicimos un update via composer no ejecutamos ese comando.

composer dump-autoload

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.