Laravel 5创建自定义注册并从默认身份验证

时间:2016-08-07 18:27:47

标签: laravel authentication laravel-5.2 laravel-blade

在cakePhp工作2年后,最近我开始学习laravel框架。我已经为我的新项目创建了数据库,并使用

创建了laravel 5的默认认证系统

php artisan make:auth 但我不能根据我的数据库设计修改它 我有一个

  • 用户表(id,用户名,密码,remember_token)
  • user_profiles表(id,first_name,last_name等)
  • 组表(id,group_name)
  • group_users(GROUP_ID,users_id)
  • users_user_profiles(user_id,user_profile_id)

所以使用上表我想实现一个基于组的用户管理系统。

如果我使用默认的身份验证系统,

  1. 如何通过一次注册将登录和注册详细信息存储到两个表中?以及如何将ID自动插入到数据透视表users_user_profiles表中?
  2. 如何创建包含登录详细信息和注册详细信息的注册视图,如何将它们分开以及如何分别访问请求数据以存储到两个单独的表中?
  3. 如果有人可以对此提供详细说明,它将有助于所有laravel 5初学者,我认为这是所有新手的常见问题。 请帮我 感谢

1 个答案:

答案 0 :(得分:1)

首先定义好你的模型,这样你就可以使用eloquent,例如与user_profiles建立连接:

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

(只有获得UserProfile模型才有可能) 然后通过添加first_name,last_name等扩展您的注册表单。在创建用户

后的auth控制器中
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);

添加创建用户个人资料的代码:

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

然后通过attach命令将其添加到用户(如果您有许多可以使用sync):

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

有关用户身份验证如何工作的详细信息,您可以找到消除文件:\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php