J'ai une webapp, faite dans Laravel 4, où les utilisateurs créent et votent sur les sondages. Ce sont les migrations (simplifié):M: N relations sur Laravel 4
migration pour les sondages:
public function up() {
Schema::create('polls', function(Blueprint $table) {
$table->increments('id');
$table->string('topic');
$table->timestamps();
});
}
migration pour les utilisateurs:
public function up() {
Schema::create('users', function(Blueprint $table) {
$table->increments('id');
$table->string('email');
$table->string('password');
$table->timestamps();
});
}
maintenant:
Je veux garder une trace quand les utilisateurs votent sur un sondage (ils ne peuvent donc plus voter). Je suppose que je devrais faire une sorte de table M: N. Un peu comme ceci:
| User ID | Poll ID |
|---------|-----------|
| 1 | 5 |
| 1 | 7 |
| 1 | 8 |
| 3 | 5 |
| ... | ... |
Mais Laravel utilise Eloquent ORM, et j'ai lu il y a des fonctions comme belongsToMany
ou hasMany
. Donc, je me demandais:
Y a-t-il une manière conventionnelle ou "intelligente" de mettre en place ce genre de "tables de relation" pour simplifier le développement et la maintenance?
Ceci est tout à fait :) dur à cuire est-il un moyen d'auto-alimenter le M: table de N? ou dois-je le faire manuellement? –
Je le ferais avec [seeds] (http://laravel.com/docs/migrations#database-seeding) et je les ajouterais comme bon vous semble (par exemple '$ poll-> users() -> saveMany ($ users) 'etc. il y a plusieurs possibilités) – zwacky
Je pensais que l'ensemencement consistait à donner des valeurs initiales à la base de données. Je ne suis pas sûr de ce que cela a à voir avec ce problème. –