Php 自定义Laravel注册过程
我想定制Laravel注册流程。 用户无法直接点击链接并注册,而不是我发送链接给用户进行注册。如: 如果该ID在customer表中可用,则根据该ID获取电子邮件地址,并使用电子邮件地址重定向到注册屏幕 如何更改web.php文件以接受参数? Auth::routes() 如何更改与寄存器相关的控制器以接受参数并将值传递给视图Php 自定义Laravel注册过程,php,laravel,registration,Php,Laravel,Registration,我想定制Laravel注册流程。 用户无法直接点击链接并注册,而不是我发送链接给用户进行注册。如: 如果该ID在customer表中可用,则根据该ID获取电子邮件地址,并使用电子邮件地址重定向到注册屏幕 如何更改web.php文件以接受参数? Auth::routes() 如何更改与寄存器相关的控制器以接受参数并将值传递给视图 你的问题不太清楚,但我会试试看 首先,您必须关闭来自auth的注册,如soauth::routes(['register'=>false]),这样即使用户在url中键入注
你的问题不太清楚,但我会试试看 首先,您必须关闭来自auth的注册,如so
auth::routes(['register'=>false])
,这样即使用户在url中键入注册路径,用户也无法访问该路径
完成此操作后,转到Auth\RegisterController类,查看它使用的重定向器
特性,您将发现一个register方法,该方法如下所示:
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
if ($response = $this->registered($request, $user)) {
return $response;
}
return $request->wantsJson()
? new Response('', 201)
: redirect($this->redirectPath());
}
这就是注册逻辑发生的地方,你可以以任何你认为合适的方式定制它,但小心不要射中你自己的脚
对于路由,您可以做一两件事
e、 g 1
然后,您可以在控制器中访问您的id
,如下所示:
public function register(Request $request)
{
$id = $request->query('id)
// Run your logic...
}
public function register(Request $request, $id)
{
// Run your logic...
}
或
e、 G2
然后,您可以在控制器中访问您的id
,如下所示:
public function register(Request $request)
{
$id = $request->query('id)
// Run your logic...
}
public function register(Request $request, $id)
{
// Run your logic...
}
无论哪种方式对你都有意义都可以。你的问题不够清楚,但我会试试看 首先,您必须关闭来自auth的注册,如so
auth::routes(['register'=>false])
,这样即使用户在url中键入注册路径,用户也无法访问该路径
完成此操作后,转到Auth\RegisterController类,查看它使用的重定向器
特性,您将发现一个register方法,该方法如下所示:
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
if ($response = $this->registered($request, $user)) {
return $response;
}
return $request->wantsJson()
? new Response('', 201)
: redirect($this->redirectPath());
}
这就是注册逻辑发生的地方,你可以以任何你认为合适的方式定制它,但小心不要射中你自己的脚
对于路由,您可以做一两件事
e、 g 1
然后,您可以在控制器中访问您的id
,如下所示:
public function register(Request $request)
{
$id = $request->query('id)
// Run your logic...
}
public function register(Request $request, $id)
{
// Run your logic...
}
或
e、 G2
然后,您可以在控制器中访问您的id
,如下所示:
public function register(Request $request)
{
$id = $request->query('id)
// Run your logic...
}
public function register(Request $request, $id)
{
// Run your logic...
}
无论哪种方式对您都有意义,都可以。然后创建另一个控制器并重新创建步骤……如果您需要它在RegisterController中提供注册方法,则在新控制器上使用
RegisterUsers
特性,然后覆盖您想要的任何内容。更像是复制并通过注册控制器,然后重命名它。您的回答很有帮助,但我不想完全覆盖注册过程。我确实重写了RegisterController showRegistrationForm()以将ID值传递给注册表。类RegisterController扩展控制器{public function showRegistrationForm(){return view('auth.register',[“id”=>'TEST123']);}}}现在我需要从URL获取这个硬编码的值如何更改web.php?您的路由将如下所示route::get('/register/{id}', 'RegisterController@showRegistrationForm“)
然后您的控制器方法将如下所示:公共函数showRegistrationForm($id){return view('auth.register',[“id”=>$id]);}
web.phpRoute::get('/register/{id}',auth\RegisterController@showRegistrationForm');
Auth\RegisterController.phpclass RegisterController扩展控制器{…….public function showRegistrationForm($id){返回视图('Auth.register',[“id”=>$id]);}
。谢谢然后创建另一个控制器并重新创建步骤…如果您需要它在RegisterController中提供注册方法,请在新控制器上使用RegisterUsers
特性,然后覆盖您想要的任何内容。更像是复制并通过注册控制器,然后重命名它。您的回答很有帮助,但我不想完全覆盖注册过程。我确实重写了RegisterController showRegistrationForm()以将ID值传递给注册表。类RegisterController扩展控制器{public function showRegistrationForm(){return view('auth.register',[“id”=>'TEST123']);}}}现在我需要从URL获取这个硬编码的值如何更改web.php?您的路由将如下所示route::get('/register/{id}', 'RegisterController@showRegistrationForm“)
然后您的控制器方法将如下所示:公共函数showRegistrationForm($id){return view('auth.register',[“id”=>$id]);}
web.phpRoute::get('/register/{id}',auth\RegisterController@showRegistrationForm');
Auth\RegisterController.phpclass RegisterController扩展控制器{…….public function showRegistrationForm($id){返回视图('Auth.register',[“id”=>$id]);}
。谢谢