Laravel 4: Travailler avec les relations dans les graines
Est-il un moyen facile de gérer plusieurs-à-plusieurs liens dans les nouvelles graines fonction de L4?
Un autre moyen serait de faire une graine pour le tableau croisé dynamique, mais j'ai beaucoup de travail.
Toute réflexion sur un bon flux de travail pour ce genre de chose?
source d'informationauteur AndHeiberg
Vous devez vous connecter pour publier un commentaire.
Dans la dernière version de Laravel 4 vous définissez l'ordre que tous les semoir scripts sont exécutés dans la "course à la" méthode de la DatabaseSeeder classe.
Vous remarquerez que j'ai désactiver les contraintes de clé étrangère avant et après l'exécution de tous mes semis. Cela peut être une mauvaise pratique, mais c'est la seule manière que je peux utiliser la fonction truncate à re-régler l'id de comptage pour chaque table. Si vous suivez le guide sur l'insertion de modèles connexes cette pratique peut être inutile.
À utiliser la mesure de masse comme je le fais dans mon exemple et que la dernière version de la documentation, vous aurez besoin de spécifier certains gardé ou à remplir les colonnes du modèle. Pour ce faire il suffit d'ajouter la propriété à votre modèle comme ceci:
Laravel de graines de fichiers sont régulièrement des scripts PHP (sauf qu'ils ont besoin de retourner un tableau). Vous pouvez interroger la base de données des semences des fichiers (à l'aide Éloquent, parle Couramment le constructeur ou le même AOP).
Une façon de répondre à plusieurs-à-plusieurs problème est délibérément nom de votre graine de fichiers, de sorte que le tableau croisé dynamique est peuplée dernier... Par exemple, vous pouvez ajouter une valeur numérique pour le nom de fichier (c'est à dire 1_authors.php, 2_books.php, 3_authors_books.php etc.). Artisan trie les fichiers par ordre alphabétique avant de les exécuter.
J'ai posté un petit tutoriel sur Laravel 4 amorçage de base de données - cela devrait vous aller. En outre, vous pouvez consulter la doc officielle sur semis.
Semis est pour simple information, des données de test et des informations statiques. Je ne vous recommande pas de l'utiliser pour gérer les relations. Personnellement, je ne l'utilise que pour 2 ou 3 enregistrement par table, pour aider à tester mon application.
Lors de l'élaboration de votre demande, pensez à travailler sur de l'entrée de données (administrateur) de la zone d'abord, puis l'extrémité avant. De cette façon, vous pouvez facilement ajouter des données de test.