У меня есть стол Laravel для hits
.Я хочу сгенерировать много тестовых данных, чтобы протестировать некоторые диаграммы на основе местоположения попадания, поэтому я создал фабрику следующим образом:
<?php
use Carbon\Carbon;
use Faker\Generator as Faker;
$factory->define(App\Hit::class, function (Faker $faker) {
$date = Carbon::parse($faker->dateTimeBetween("-2 months", "now")->format('Y-m-d'));
$faker->seed(rand());
return [
'latitude' => '',
'longitude' => '',
'country' => 'US',
'state' => '',
'city' => '',
'created_at' => $date,
'updated_at' => $date,
];
});
Затем в HitsTableSeeder
он делает это:
<?php
use Illuminate\Database\Seeder;
class HitsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$i = 0;
while ($i <= 25000) {
factory(App\Hit::class)->create(
[
'latitude' => $faker->latitude,
'longitude' => $faker->longitude,
'country' => 'US',
'state' => $faker->state,
'city' => $faker->city,
]
);
$i++;
}
}
}
Всегда возвращаются одни и те же данные:
-[ RECORD 1 ]------+---------------------------
id | 1
latitude | 41.31
longitude | -72.92
country | US
state | CT
city | New Haven
-[ RECORD 2 ]------+---------------------------
id | 2
latitude | 41.31
longitude | -72.92
country | US
state | CT
city | New Haven
-[ RECORD 3 ]------+---------------------------
id | 3
latitude | 41.31
longitude | -72.92
country | US
state | CT
city | New Haven
Это происходит независимо от того, пытаюсь ли я переопределить заводские значения в сеялке таблицы или записать данные непосредственно на заводе и 't попробуйте переопределить значение в сеялке.
Как я могу получить действительно случайные данные?
ПРИМЕЧАНИЕ. Я принимаю ответ @Erick Patrick, потому что он правильный, нометод, который я использовал, также является правильным.Проблема оказалась в том, что модель Hit
имела событие , прикрепленное к геокодированию попадания перед его сохранением - и по какой-то причине геокодер всегда возвращал это же местоположение для поддельных данных, предположительно потому, что онне может быть найден!