Black Friday sale is now on! 50% off Laravel: The Modular Way. Learn more

laravel 5.3 disable registration

David Carr

Laravel Framework

    Laravel comes with built in authentication to enable it first create the users table by running the default migrations:

    php artisan migrate

    Next create the authentication:

    php artisan make:auth

    Once run auth views and controllers will be created and the default layout file will have a login and register link.

    You may not want the register part, removing the link from the template is not enough the routes and view/controller still exist. The can be deleted but a better way is to just disable the loading of the register view.

    To do this open app/http/Controllers/Auth/RegisterController.php, this classes uses a RegistersUsers trait which contains a protected method to load the view. That’s in the core but you should never touch the core so instead overwrite that method by creating a method with the same name in RegisterController.php and instead of loading a view redirect to the home page or anywhere you like:

    public function showRegistrationForm()
    {
        return redirect('/');
    }

    While you’re at it disable the create method too:

    protected function create(array $data)
    {
        return redirect('/');
        /*return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);*/
    }

    This will stop the view from loading and stop the create from running. But if you change your mind later you can revert these back easily.

    Do you know of a better way? let me know in the comments below.

    Laravel Modules Book by David Carr

    Help support the blog so that I can continue creating new content!

    Subscribe to my newsletter

    Subscribe and get my books and product announcements.

    © 2009 - 2022 DC Blog. All code MIT license. All rights reserved.