【问题标题】:Laravel multi creation userLaravel 多创建用户
【发布时间】:2016-11-28 00:45:49
【问题描述】:

我需要同时创建两个用户。这是我在 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;
}

问题是令牌只为最后创建的用户存储。在 mysql 数据库中,对于第一个用户,列 remember_tokennull

如何创建两个不同的令牌?
如果您有其他同时创建两个用户的最佳想法,请告诉我。

谢谢

【问题讨论】:

    标签: mysql laravel authentication


    【解决方案1】:

    尝试像这样保存用户:

    $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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      相关资源
      最近更新 更多