8
votes

Laravel Semagne mes tables (beaucoup à de nombreuses relations) échouent

Je construis un système d'authentification à Laravel où un utilisateur peut avoir des rôles différents. J'ai trois tables. utilisateurs , rôles , role_user et xxx

Je veux semer mes tables: < Pré> xxx

à ma question: Comment puis-je semer la table de rôle_utilisateur? Ai-je besoin d'un modèle pour ça? Avec l'utilisateur et le tableau de rôle, j'ai l'utilisateur et le rôle de modèle. xxx

L'échec Je reçois lorsque j'essaye que la graine est la suivante: xxx


0 commentaires

3 Réponses :


0
votes

C'est dans le message d'erreur. schéma :: Table () attend quelque chose comme ceci: xxx

alors que vous avez: xxx

Qu'est-ce que vous 'RE RECHERCHE est le dB :: Table ("Rôles') -> Supprimer () ou DB :: Table (" Rôles ') -> Truncate () Fonction : xxx

Plus d'informations peut être trouvé dans la section Docs En ce qui concerne la suppression record .


2 commentaires

Ceci est une erreur. Supprimer () tronque les valeurs de la table, ce qui veut que l'OP veut. goutte () et drapifexists () supprime la table réelle toutes ensemble. Il n'y aura plus de rôles la table plus après cette commande. Et Supprimer () est séparé de la classe dB de toute façon, pas schéma (voir ma réponse).


Point juste, je supposais qu'il essayait de supprimer la table pour une raison quelconque. Mettra à jour.



6
votes

Deux problèmes avec votre code. Tout d'abord, votre erreur est dû à celle-ci:

// Create the role
$superadmin = Role::create(array(
    'role'     => 'Superadmin'
));


// Create the user
$user = User::create(array(
    'name'     => 'John',
    'surname'     => 'Svensson',
    'username' => 'John_superadmin',
    'email'    => 'john.svensson@gmail.com',
    'password' => Hash::make('1234'),
));

// Assign roles using one of several methods:

// Syncing
$user->roles()->sync([$superadmin->id]);

// or attaching
$user->roles()->attach($superadmin->id);

// or save
$user->roles()->save($superadmin);


3 commentaires

Vous avez raison. Depuis sa table juste je pivot, je suppose que je n'ai pas besoin d'un modèle pour cela? Et je suppose que je ne devrais spécifier que la relation d'appartenance de l'appartenance dans le modèle utilisateur.


Vous n'avez pas besoin d'un modèle pour une table pivot. Si vous souhaitez que les utilisateurs aient plus d'un rôle, collez-vous avec la table pivot et récupérez-vous du fichier sur la table d'utilisateurs.


«Role_id dans votre table d'utilisateurs dans une relation unique, pas une seule à plusieurs, comme la table de pivot», avez-vous voulu dire plusieurs-à-plusieurs?



2
votes

Vous devez corriger schéma :: Table à DB :: Table , comme déjà suggéré.

Cependant, le moyen le plus facile et le plus performant de la table de pivotement est quelque chose comme ceci: xxx


0 commentaires