Creando un ToDo con Laravel 4 – Añadiendo datos de prueba

Laravel4

Este post es la parte 3 de 4 del artículo: Creando un ToDo con Laravel 4

Antes de ponernos a crear y editar nuevas tareas veremos como podemos rellenar nuestra base de datos con datos de prueba. En Symfony2 se le llamaba Fixtures y aqui Seeds.

Primero añadiremos dos categorías.

Crearemos un fichero llamado CategoriasSeeder en la carpeta app/database/seeds con el siguiente contenido:

y tres tareas, 2 para la primera categoría y 1 para la segunda en el fichero TareasSeeder.php en la misma carpeta que el anterior

Una cosa muy importante a tener en cuenta que me estaba volviendo loco,  es que, si dentro del insert metes un array de datos como he hecho yo, TODOS los registros deben de tener la misma cantidad de columnas. En el código anterior si quitamos las líneas de ‘completado’ => false debido a que no es necesario ya que es su valor por defecto, luego cuando insertemos los valores no dará ningún error pero tampoco te meterá ningún dato en la tabla tareas

Y no debemos de olvidarnos de decirle al fichero app/database/DatabaseSeeder.php nuestras clases

Con $this->command->info(‘…..’) mostraremos por consola el mensaje indicado

Ahora ya, solo nos queda ejecutar la insercción de estos datos. Tenemos dos formas

La primera es:

php artisan db:seed

Con esto lo que haremos será simplemente insertar los datos, la pega que tiene es que si lo ejecutas 2 veces seguidas, te duplicará estos datos. La solución sería tan sencilla como antes de insertar nuestros datos en la función run vaciar la base de datos con:

DB::table(‘nuestraTabla’)->truncate();

o usar la segunda forma para insertar datos

php artisan migrate:refresh --seed

Primero echa para atrás todas las migraciones y luego las vuelve a ejecutar y después rellena los datos.

Y ya tenemos los datos de prueba instalados en la base de datos.

Partes del artículo<< Creando un ToDo con Laravel 4 – Creando las tablas con migracionesCreando un ToDo con Laravel 4 – Rutas >>

Deja un comentario

  • (will not be published)


1 + 3 =