3
votes

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

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

Edit: Here is my 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;
}
2
You can change this line in your RegisterController.php protected $redirectTo = '/home'; to protected $redirectTo = '/login'; - Nikhil Radadiya
@NikhilRadadiya I have tried it, and it also redirected to login by the Url Ex: localhost/appName/login But the page shows "The page is not working" - Saroj
Can you post whole error message here? - Nikhil Radadiya
Try clearing cache and views - Nikhil Radadiya
Tried. But not working. - Saroj

2 Answers

7
votes

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

In your RegisterController add the register method :

/**
 * 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');
}
2
votes

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

use Illuminate\Http\Request;

use Illuminate\Auth\Events\Registered;