0
votes

GRAINES DB à Laravel 6+ avec des ensembles de données fixes

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();


0 commentaires

3 Réponses :


1
votes

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,
            ]);
        });
    }
}


2 commentaires

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 nom dans la matrice remplissable du modèle de ville pour cette solution pour travailler



1
votes

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
    ];
});


0 commentaires

1
votes

Pour cette erreur particulière, essayez xxx

puis modifier votre semoir sur xxx


0 commentaires