用户注册后重定向到登录页面。Laravel 5.4

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/44135426/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 16:01:49  来源:igfitidea点击:

Redirect to login page after a user is registered. Laravel 5.4

phplaravellaravel-5.4

提问by Saroj

How can I redirect to login page, after a user is registered on my web application with a message called "Your information is received and witing for admin approval.". By using laravel 5.4 version

在用户在我的 Web 应用程序上注册并显示一条名为“您的信息已收到并等待管理员批准”的消息后,如何重定向到登录页面。通过使用 laravel 5.4 版本

Note: I have done the login and register by using Auth procress of laravel 5.4.

注意:我已经使用 laravel 5.4 的 Auth 进程完成了登录和注册。

Edit: Here is my RegisterController

编辑:这是我的 RegisterController

namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Storage;

class RegisterController extends Controller

{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/

use RegistersUsers;

/**
 * Where to redirect users after registration.
 *
 * @var string
 */
protected $redirectTo = '/login';

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('guest');
}

/**
 * Get a validator for an incoming registration request.
 *
 * @param  array  $data
 * @return \Illuminate\Contracts\Validation\Validator
 */
protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
        'userimage' => 'required|image'
    ]);
}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return User
 */
protected function create(array $data) {
    $path = Storage::putFile('userimages',$data['userimage']);
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        'userimage' => $path,
        'user_type' => 3
    ]);
    return $user;
}

回答by Pankit Gami

In RegisterController, by default Laravel login the user, so when you redirect back to loginroute. It gives you page is not redirecting properlyerror.

在 中RegisterController,默认情况下 Laravel 登录用户,因此当您重定向回login路由时。它给你页面没有正确重定向错误。

In your RegisterControlleradd the registermethod :

在您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())));

    return redirect($this->redirectPath())->with('message', 'Your message');
}

回答by X_slasher

Also add this line of code on the top of RegisterController:

还要在 RegisterController 的顶部添加这行代码:

use Illuminate\Http\Request;

使用 Illuminate\Http\Request;

use Illuminate\Auth\Events\Registered;

使用 Illuminate\Auth\Events\Registered;