Estoy tratando de insertar datos estáticos, con la ayuda de la sembradora y Eloquent como se indica a continuación.
use Illuminate\Database\Seeder;
use App\Role;
class RoleSeeder extends Seeder
{
public function run()
{
Role::insert(array(
array('name' => 'admin'),
array('name' => 'user')
));
}
}
Incluso después de usar Eloquent, obtengo una marca de tiempo nula en la base de datos.
3 respuestas
Las columnas timestamp
( created_at y updated_at ) se asignarán automáticamente solo si está utilizando Eloquent
El método save()
y el método create
son Elocuentes .
Si bien el método insert
no es no elocuente , es un método generador de consultas. Entonces use el método create
en su lugar:
public function run()
{
Role::create(array(
array('name' => 'admin'),
array('name' => 'user')
));
}
Cuando está utilizando el generador de consultas, debe created_at
y updated_at
valor usted mismo:
Role::insert(array(
array('name' => 'admin'),
array('name' => 'user'),
array('created_at' => \Carbon\Carbon::now()),
array('updated_at' => \Carbon\Carbon::now()),
));
Intenta esto en su lugar
<?php
use Illuminate\Database\Seeder;
use App\Role;
class RoleSeeder extends Seeder
{
public function run()
{
Role::truncate();
Role::create(['name' => 'admin']);
Role::create(['name' => 'user']);
}
}
El error se genera porque está utilizando insertar en lugar de crear.
Utilice el método create
el método de inserción no toma la marca de tiempo
use Illuminate\Database\Seeder;
use App\Role;
class RoleSeeder extends Seeder
{
public function run()
{
Role::create(array(
array('name' => 'admin'),
array('name' => 'user')
));
}
}
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.