laravel 的两个不同的注册页面

Two different registration pages for laravel

我正在尝试为 laravel 创建两个不同的注册页面 - 一个用于 "students",另一个用于 "mentors"。

我脑子里有两种方法可以解决这个问题:

  1. 就是在localhost/register?user_type="mentor"和localhost/register?user_type="student"中添加.然后根据 user_type 参数添加一个隐藏输入,它将在注册时提交给 laravel 和 user_type。

  2. 添加完全第二个注册页面localhost/register_mentor or localhost/register_student

所以,我使用了 makeauth 脚手架。但在这里我很困惑。

  1. 我不知道路线在哪里,例如:

在 "RegistrationController" 我有

protected function create(array $data) 

所以我知道我可以编辑它并在数据库中添加一个 user_type 列。

但是我不知道这个 "create" 是在哪里调用的?所以我不知道如何放入一个新的注册页面,用 user_type 调用它。

  1. 因为我不知道它是如何被路由的 - 我不知道如何复制当前的 register.blade.php 并为第二个注册页面制作一个新的。它在 register.blade.php 中说注册过程被发送到“{{ route('register') }” - 但我不知道这是哪里。

希望我说得有道理,如有任何帮助,我们将不胜感激!

我想你可以手动创建第二个控制器,这个用户的新模型和新注册的新表单,然后手动创建,这样会更容易。

但是如果你想看看 Auth 做了什么,你可以去 vendor/laravel/framework/illuminate/auth 并且你已经使用了所有文件。

正在 vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php 中找到的 register() 方法中调用创建方法。 您可以通过将找到的 register() 方法放在您的 RegisterController 中来覆盖它。

您还可以访问 register() 方法中的 $request 实例,因此您可以检查 url 参数。

在你的RegisterController.php中添加注册方法:

public function register(Request $request)
 {
     $this->validator($request->all())->validate();

     //Determine User type
     if($request->user_type === 'mentor'){
        event(new Registered($user = $this->create($request->all())));  
     }

     $this->guard()->login($user);

     return $this->registered($request, $user)
                     ?: redirect($this->redirectPath());
 }