laravel 的两个不同的注册页面
Two different registration pages for laravel
我正在尝试为 laravel 创建两个不同的注册页面 - 一个用于 "students",另一个用于 "mentors"。
我脑子里有两种方法可以解决这个问题:
就是在localhost/register?user_type="mentor"和localhost/register?user_type="student"中添加.然后根据 user_type 参数添加一个隐藏输入,它将在注册时提交给 laravel 和 user_type。
添加完全第二个注册页面localhost/register_mentor or localhost/register_student
所以,我使用了 makeauth 脚手架。但在这里我很困惑。
- 我不知道路线在哪里,例如:
在 "RegistrationController" 我有
protected function create(array $data)
所以我知道我可以编辑它并在数据库中添加一个 user_type 列。
但是我不知道这个 "create" 是在哪里调用的?所以我不知道如何放入一个新的注册页面,用 user_type 调用它。
- 因为我不知道它是如何被路由的 - 我不知道如何复制当前的 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());
}
我正在尝试为 laravel 创建两个不同的注册页面 - 一个用于 "students",另一个用于 "mentors"。
我脑子里有两种方法可以解决这个问题:
就是在localhost/register?user_type="mentor"和localhost/register?user_type="student"中添加.然后根据 user_type 参数添加一个隐藏输入,它将在注册时提交给 laravel 和 user_type。
添加完全第二个注册页面localhost/register_mentor or localhost/register_student
所以,我使用了 makeauth 脚手架。但在这里我很困惑。
- 我不知道路线在哪里,例如:
在 "RegistrationController" 我有
protected function create(array $data)
所以我知道我可以编辑它并在数据库中添加一个 user_type 列。
但是我不知道这个 "create" 是在哪里调用的?所以我不知道如何放入一个新的注册页面,用 user_type 调用它。
- 因为我不知道它是如何被路由的 - 我不知道如何复制当前的 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());
}