2016-07-24 10 views
1

Ich muss zwei Benutzer in der gleichen Zeit erstellen. Hier ist mein Code in dem AuthController:Laravel multi creation user

protected function create(array $data) { 

    $profile = New \App\ClientDetail(); 
    $profile->s_firstname = $data['s_firstname']; 
    $profile->s_surname = $data['s_surname']; 
    $profile->p_firstname = $data['p_firstname']; 
    $profile->p_surname = $data['p_surname']; 
    $profile->s_mobile_number = $data['s_mob_number']; 
    $profile->s_home_number = $data['s_home_number']; 
    $profile->p_mobile_number = $data['p_mob_number']; 
    $profile->p_home_number = $data['p_home_number']; 
    [...all the form information fields] 
    $profile->save(); 
    /*FIRST USER TO CREATE*/ 
    if($data['s_email']) { 
     $user = User::create([ 
      'detail_id' => $profile->id, 
      'email' => $data['s_email'], 
      'password' => bcrypt('secret'), 
     ]); 
     $user->attachRole($student); 
    } 
    /*SECOND USER TO CREATE*/ 
    if($data['p_email']) { 
     $user = User::create([ 
      'detail_id' => $profile->id, 
      'email' => $data['p_email'], 
      'password' => bcrypt('secret'), 
     ]); 
     $user->attachRole($parent); 
    } 

    return $user; 
} 

Das Problem ist, dass das Token nur für den zuletzt erstellte Benutzer gespeichert wird. In der Datenbank mysql ist für den ersten Benutzer die Spalte remember_tokennull.

Wie ist es möglich, zwei verschiedene Tokens zu erstellen?
Wenn Sie eine andere beste Idee haben, um zwei Benutzer gleichzeitig zu erstellen, lassen Sie es mich bitte wissen.

Dank

Antwort

0

Versuchen Sie, die User wie diese zu speichern:

$user = new User($data); 
$user->save(); 

Sie müssen die $ ausfüllbare Eigenschaft in Ihrem User-Modell erklären:

protected $fillable = ['email','password', 'detail_id']; 

Auch können Sie verwenden:

$user->profile()->associate($profile->id); 

Und im User-Modell:

public function profile() 
{ 
    return $this->belongsTo('App\Profile'); 
} 

Oder Sie können so etwas tun:

$profile->users()->createMany($usersData);