Bonjour,
Je suis présentement entrain de me créer une API pour un "card game" qui ne partage pas son API publiquement. Donc, pour ceux qui ne le savent pas déjà, une carte dans un "card game" peut se faire imprimer une ou plusieurs fois.
À chaque ré-impression, il peut y avoir quelques informations différentes comme par exemple : la rareté; le "set"; et le numéro de la carte.
Ce que je fais
Donc, j'ai une table composé de 3 foreign keys.
Maintenant, j'aimerais être en mesure d'utiliser la fonction "attach()" qui est proposé par Laravel pour me simplifier la vie et ne pas créer de Model supplémentaire. Mon problème, c'est que je ne comprends pas bien les "pivot tables" et comment ça fonctionne lorsque l'on a plus de 2 foreign keys dans la table.
** Voici le code pour la création de la table.
Schema::create('cards_sets_rarities', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('card_id');
$table->unsignedInteger('set_id');
$table->unsignedInteger('rarity_id');
$table->string('number');
$table->timestamps();
$table->foreign(['card_id', 'set_id', 'rarity_id'])->references(['id', 'id', 'id'])->on(['card', 'set', 'rarity']);
});
Model ****card.php
public function rarities() {
return $this->belongsToMany(Rarity::class);
}
public function sets() {
return $this->belongsToMany(Set::class);
}
Model ****set.php
public function cards() {
return $this->belongsToMany(Card::class);
}
public function rarities() {
return $this->belongsToMany(Rarity::class);
}
Model ****rarity.php
public function cards() {
return $this->belongsToMany(Card::class);
}
public function sets() {
return $this->belongsToMany(Set::class);
}
Ce que je veux
J'aimerais de l'aide pour comprendre comment faire en sorte que mon pivot table fonctionne avec 3 foreign keys.
Merci!