Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自定义Laravel注册过程_Php_Laravel_Registration - Fatal编程技术网

Php 自定义Laravel注册过程

Php 自定义Laravel注册过程,php,laravel,registration,Php,Laravel,Registration,我想定制Laravel注册流程。 用户无法直接点击链接并注册,而不是我发送链接给用户进行注册。如: 如果该ID在customer表中可用,则根据该ID获取电子邮件地址,并使用电子邮件地址重定向到注册屏幕 如何更改web.php文件以接受参数? Auth::routes() 如何更改与寄存器相关的控制器以接受参数并将值传递给视图 你的问题不太清楚,但我会试试看 首先,您必须关闭来自auth的注册,如soauth::routes(['register'=>false]),这样即使用户在url中键入注

我想定制Laravel注册流程。 用户无法直接点击链接并注册,而不是我发送链接给用户进行注册。如: 如果该ID在customer表中可用,则根据该ID获取电子邮件地址,并使用电子邮件地址重定向到注册屏幕

如何更改web.php文件以接受参数? Auth::routes()

如何更改与寄存器相关的控制器以接受参数并将值传递给视图


你的问题不太清楚,但我会试试看

首先,您必须关闭来自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.php
Route::get('/register/{id}',auth\RegisterController@showRegistrationForm');
Auth\RegisterController.php
class 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.php
Route::get('/register/{id}',auth\RegisterController@showRegistrationForm');
Auth\RegisterController.php
class RegisterController扩展控制器{…….public function showRegistrationForm($id){返回视图('Auth.register',[“id”=>$id]);}
。谢谢