如何在创建方法laravel6之后重定向用户?

问题描述 投票:0回答:2

我在front_page中创建了一个注册表,我想在成功注册到/ home页面后将用户重定向,但是我得到一个数组,并且用户未重定向。

  {"email":"[email protected]","paypal_email":"[email protected]","updated_at":"2020-02- 
  14 
  08:16:32","created_at":"2020-02-14 08:16:32","id":1}

我的路线:

 Route::post('/', 'Auth\RegisterController@create')->name('auth.register');

注册控制器:

      public function create(Request $request)
{
    return User::create([
        'email' => $request['email'],
        'paypal_email' => $request['paypal_email'],
        'password' => Hash::make($request['password']),
    ]);


}    

  public $redirectTo = '/home';
php laravel laravel-5
2个回答
3
投票

更改此:

public function create(Request $request)
{
    return User::create([
        'email' => $request['email'],
        'paypal_email' => $request['paypal_email'],
        'password' => Hash::make($request['password']),
    ]);


}    

至此:

public function create(Request $request) {
    $create = User::create([
        'email' => $request['email'],
        'paypal_email' => $request['paypal_email'],
        'password' => Hash::make($request['password']),
    ]);
    if($create){
       return redirect('/home');
    }

    //Return errors here  
}

要了解有关laravel重定向的更多信息,请单击here


1
投票

出于某些原因,您不应直接调用create方法。

  1. 该请求未得到验证。
  2. 如果您想在注册期间触发一些不会发生的事件。
  3. 不会自动登录用户。

create方法确实适用于laravel trait RegistersUsers内部使用。您可以像这样保持控制器,只需要将路由更改为register

Route::post('/', 'Auth\RegisterController@register')->name('auth.register');

通过这样做,应该创建用户并将其重定向到主页。

并且存在public $redirectTo = '/home';此属性的原因,直接使用create方法就完全忽略了该属性。

© www.soinside.com 2019 - 2024. All rights reserved.