von Seeding habe ich die folgenden Tabellen Benutzer, Rollen und die Pivot-Tabelle role_user mit der folgenden Tabelle Strukturbesserer Weg, um eine Pivot-Tabelle
Benutzer
- id
- Benutzername
- passwort
Rollen
- id
- Rolle
role_user
- id
- ROLE_ID
User_id
<?php class PivotTableSeeder extends Seeder { public function run() { // Seeds the roles table DB::table('roles')->delete(); DB::table('role_user')->insert(array( array('user_id' => 1, 'role_id' => 1), array('user_id' => 2, 'role_id' => 2), array('user_id' => 3, 'role_id' => 1), array('user_id' => 3, 'role_id' => 3), array('user_id' => 3, 'role_id' => 5) )); } }
Die Pivot-Tabelle DB select
Gibt es einen besseren Weg, um die Tabellen zu impfen, einschließlich der Pivot-Tabelle verwendet, wird geimpft?
Ich dachte, vielleicht, wenn ich meine Benutzer-Tabelle säen, wird es auch die Tabelle role_user säen, anstatt die Daten manuell in die Pivot-Tabelle einzufügen.
Beispiel:
Rollen
- id = 1
- role = Encoder
- id = 2
- role = tech
- id = 3
- role = Verkäufe
Benutzer
- id = 1
- username = user
- password =
- id = 2
- username = benutzer2
- password = pass2
passieren role_user
- id = 1
- User_id = 1
- role_id = 1
- id = 2
- User_id = 1
- role_id = 2
- id = 3
- User_id = 2
- role_id = 3
bearbeiten
ich meine Benutzer-Tabelle dieses Eloquent unter Verwendung der Aussaat. Gibt es trotzdem, dass der role_user beim Seeding des Users auch aktualisiert wird?
User::create(array(
'id' => '1',
'username' => 'user',
'password' => 'pass'
));
User::create(array(
'id' => '2',
'username' => 'user2',
'password' => 'pass2'
));
Das schafft nicht die Rollen, und 'attach()' Sie auf einen Datensatz beschränken? Sie müssten also mehrere Einfügungen ausführen, um einem Benutzer mehrere Rollen hinzuzufügen. – ollieread
Rollen werden bereits gemäß dem betreffenden Code erstellt und nur mit erstellten Rollen verknüpft. –
Ich dachte, er möchte jedem Benutzer eine Rolle zuweisen, aber für mehrere Rollen sollte 'sync' verwendet werden, danke @ollieread :-) –