0
votes

Problèmes avec table pivot avec Laravel

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. XXX

Suivant, la façon dont j'ai créé mes classes "champions" et " Equipes ", avec ma migration de table pivot. xxx xxx xxx

merci pour votre aide! Vous pouvez également accéder à l'ensemble du code ici: https://github.com/valentindelpy/proyecto-web < / a>


2 commentaires

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


3 Réponses :


0
votes

semble que vous avez une collision avec des équipes et une équipe.

Votre modèle est nommé équipes (devrait être équipe ).

Checkout Comment faire beaucoup de relations à de nombreuses relations à proximité:

Laravel Docs


1 commentaires

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



0
votes

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 Belogstomany (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 ).

Gardez également à l'esprit que la fonction witpivot 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 )


0 commentaires

0
votes

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

}


0 commentaires