Je veux semer mon dB avec des ensembles de données aléatoires mais aussi fixes.
J'ai plusieurs colonnes dont les données peuvent être aléatoires mais pour une colonne ( nom code>), j'ai besoin d'une gamme de valeurs codées en papier qui ne peut pas être aléatoire, mais doit être générée dans l'ordre.
$cities = factory(App\City::class)->make();
$cities->save();
3 Réponses :
Vous devez autoriser votre usine à générer un nom de ville aléatoire et utiliser votre semoir pour vous assurer que vous disposez du jeu de données requis.
Mettez à jour votre usine de modèle à ceci: P>
class CitiesTableSeeder extends Seeder { public function run() { collect(['Tokyo', 'Paris', 'London', 'Milan'])->each(function ($name) { factory(App\City::class)->create([ 'name' => $name, ]); }); } }
Merci pour l'idée, je l'ai essayé mais malheureusement, cela ne fonctionne pas comme Faker génère des "noms" et non des villes de la matrice.
@ lordez3d peut-être que vous devriez ajouter l'attribut code> nom code> dans la matrice remplissable du modèle de ville pour cette solution pour travailler
Vous pouvez utiliser la méthode unique () code> sur l'instance Faker:
$factory->define(City::class, function (Faker $faker) {
return [
'name' => $faker->unique()->randomElement(['Tokyo', 'Paris', 'London', 'Milan']),
'code' => $faker->isbn,
'description' => $faker->paragraph
];
});
Pour cette erreur particulière, essayez puis modifier votre semoir sur p>