我需要同时创建两个用户。这是我在 AuthController 中的代码:
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;
}
问题是 token 只是为最后创建的用户存储的。在 mysql 数据库中,对于第一个用户,remember_token
列是 null
。
如何创建两个不同的 token ?
如果您有其他关于同时创建两个用户的最佳想法,请告诉我。
谢谢
最佳答案
尝试像这样保存用户:
$user = new User($data);
$user->save();
您必须在您的用户模型中声明 $fillable 属性:
protected $fillable = ['email','password', 'detail_id'];
您还可以使用:
$user->profile()->associate($profile->id);
在用户模型中:
public function profile()
{
return $this->belongsTo('App\Profile');
}
或者你可以这样做:
$profile->users()->createMany($usersData);
关于mysql - Laravel 多创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38554812/