J'ai un problème de création de table pivot à Laravel. C'est la première fois que j'utilise et après avoir cherché sur Internet, je ne peux pas réussir à résoudre mon problème. Suivant, la façon dont j'ai créé mes classes "champions" et " Equipes ", avec ma migration de table pivot. P> merci pour votre aide! Vous pouvez également accéder à l'ensemble du code ici: https://github.com/valentindelpy/proyecto-web < / a> p> p>
3 Réponses :
semble que vous avez une collision avec des équipes et une équipe. P>
Votre modèle est nommé Checkout Comment faire beaucoup de relations à de nombreuses relations à proximité: p>
Laravel Docs P> équipes code> (devrait être équipe code>). p>
Y a-t-il un moyen facile de le changer dans l'ensemble du projet? Tenter de le faire manuellement, il suffit de générer plus de problèmes
Probablement Laravel génère l'identifiant du nom du modèle, donc si le projet est tout neuf, changez-le, sinon, vous devez déclarer le nom des clés étrangères dans la fonction Gardez également à l'esprit que la fonction Belogstomany code> (cocher < Un href = "https://laravel.com/api/6.x/illuminate/database/eloquent/concerns/hasrelationships.html#method_belongstomany" rel = "NOFOOL NOREFERRER"> https://laravel.com/api/6 .x / Illuminate / base de données / éloquents / préoccupations / hasrelationships.html # Method_belongstomanany ). P>
witpivot code> est de laisser Laravel connaître l'existence d'autres champs plus que les 2 seules clés étrangères, pas les clés étrangères elles-mêmes (cocher https://laravel.com/api/6.x/illuminate/database /Eloquent/relations/belongstomany.html#method_withpivot ) p>
Beaucoup de
Puisque vous ne suivez pas les conventions de noms que Laravel attend, vous devez personnaliser le nom de la table de jonction, les noms de colonne des touches de la table en passant des arguments supplémentaires à la méthode code>. Le troisième argument est le nom de la clé étrangère du modèle sur lequel vous définissez la relation, tandis que le quatrième argument est le nom de la clé étrangère du modèle que vous vous joignez à:
class Champions extends Model
{
public function teams(){
return $this->belongsToMany(Teams::class, 'champions_teams', 'team_id', 'champion_id');
}
}
class Teams extends Model
{
public function champions(){
return $this->belongsToMany(Champions::class, 'champions_teams', 'champion_id', 'team_id');
}
}
Supprimer le withpIvot ('Team_id') et avec pivot ('champion_id'); de la vôtre appartient des relations
Ne change toujours pas mon problème. Pourrait venir de la collision comme dit Piotrek