Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

298
Vistas
Problema al llenar una fecha aleatoria con seeder Laravel 6

Estoy llenando una base de datos con seeders y factory, el problema es que necesito llenar el campo CREATED_AT con fechas que no son de hoy sino aleatorias, para poder llenar las diferentes gráficas que tiene la página.

Probé y a veces me inserta datos y otras veces me tira error de que el campo no es válido y que está en formato de fecha el error que me tira en la consola.

 ERROR MESSAGE "Incorrect datetime value: '2021-09-05 00:00:00' for column 'created_at' at row 1"

imagen de error

CÓDIGO

 $factory->define(Opportunity::class, function (Faker $faker) { $account_id = Account::all()->random()->id; $account = Account::find($account_id); $contact = Contact::where('account_id',$account_id)->inRandomOrder()->limit(1)->first(); $created = $this->faker->dateTimeBetween($startDate = '-3 month', $endDate = 'now +6 month'); $date = strtotime('+2 days', strtotime(Carbon::parse($created))); return [ 'created_at' => Carbon::parse($created)->format('Ymd H:i:s'), ///line error 'name' => $this->faker->name .' '.$this->faker->sentence(2), 'amount' => $this->faker->numberBetween($min = 120000, $max = 20000000), 'probability' => $faker->randomElement(['0','10','20','30','40','50','60','70','80','90','100']), 'description' => $this->faker->paragraph, 'lead_source_id'=> LeadSource::all()->random()->id, 'sales_stage_id'=> 1, 'account_id' => $account_id, 'user_id' => $account->user_id, 'contact_id' => ( $contact != null ? $contact->id : null), 'close_date' => Carbon::parse($date)->format('Ym-d'), 'product_line_id'=> ProductLine::all()->random()->id ]; });
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Intente cambiar $this->faker a $faker y la migración debería tener $table->timestamps();

entonces puedes usar dateTimeBetween directamente así

 'created_at'=>$faker->dateTimeBetween($startDate = '-3 month',$endDate = 'now +6 month')

Clase de sembrador de oportunidades

 public function run() { factory(App\Opportunity::class,5)->create(); }

Clase DatabaseSeeder

 $this->call([ OpportunitySeeder::class ]);

https://laravel.com/docs/6.x/database-testing#using-seeds

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda