2016-08-07 71 views
0

Nach 2 Jahren Erfahrung in CakePhp, habe ich vor kurzem Laraven Framework zu lernen begonnen. i erstellt die Datenbank bereits für mein neues Projekt und ein Standard-Authentifizierungssystem mit Laravel erstellen 5 dieLaravel 5 Erstellen von benutzerdefinierten Registrierung und Login von Standard-Authentifizierung

php artisan make:auth verwenden, aber ich kann es Design nach meiner Datenbank ändern ich habe eine

  • Benutzer-Tabelle (id , Benutzername, Passwort, remember_token)
  • USER_PROFILES Tabelle (id, first_name, last_name etc)
  • Gruppentabelle (id, group_name)
  • group_users (group_id, users_id)
  • users_user_profiles (user_id, user_profile_id)

so die obige Tabelle mit i eine Gruppe basierte Benutzermanagementsystem implementieren möchten.

wenn ich das Standard-Authentifizierungssystem verwenden,

  1. Wie kann ich speichern Login und Registrierung Details in zwei Tabellen mit einer einzigen Anmeldung aus? und wie kann ich die IDs automatisch in Pivot-Tabelle users_user_profiles Tabelle einfügen?
  2. Wie erstellt man eine Ansicht für die Registrierung, die sowohl die Login-Daten als auch die Registrierungsdetails enthält, wie kann ich sie trennen und wie kann man auf die Anforderungsdaten getrennt zugreifen, um sie in zwei separaten Tabellen zu speichern?

, wenn jemand eine detaillierte Beschreibung zu diesem Thema zur Verfügung stellen kann, wird es alle Laravel 5 Anfängern helfen, ich denke, es ist ein weit verbreitetes Problem für alle Neulinge .. mir bitte helfen Dank

+0

Kennen Sie das Eloquente ORM? – jonju

+0

Ja, ich weiß über relationships –

Antwort

1

Erste guten Ihre Modelle definieren , so können Sie eloquent, zum Beispiel Herstellen einer Verbindung mit USER_PROFILES:

public function profiles() 
    { 
     return $this->belongsToMany('UserProfile'); 
    } 

(Es wird nur möglich sein, wenn Sie Userprofile Modell bekommen) Dann Sie Ihr Anmeldeformular erweitern first_name durch Hinzufügen, last_n ame usw. In Auth-Controller nach Benutzer

$user = User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 

Erstellen von Code hinzufügen, die Benutzerprofil erstellen:

$userProfile = UserProfile::create([ 
     'first_name' => $data['name'], 
     'last_name' => $data['email'] 
    ]); 

Dann fügen Sie Benutzer durch attach Befehl (wenn Sie viele von ihnen haben, können Sie verwenden sync):

$user->userProfiles()->attach($userProfile->id); 

Weitere Informationen darüber, wie Arbeit Benutzer-Authentifizierung Sie auszurotten Datei finden: \vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php

+0

Was ist mit Pivot-Tabellen aktualisieren? Ich habe eine Pivot-Tabelle group_user wie erwähnt, wie Sie es nach dem Speichern der Benutzerdetails automatisch aktualisieren –

+1

Genauso wie Speichern in users_user_profiles von $ user-> userProfiles() -> attach ($ userProfile-> id); – Geding

+0

was ich will ist, wenn ein Benutzer Registrierung Registrierungsseite registriert, übergebe ich ein verstecktes Feld als group_id. Ich möchte meine Pivot-Tabelle group_user automatisch aktualisieren, wenn die Benutzerdaten gespeichert wurden. –