Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Undefined class constant 'App\Providers\RouteServiceProvider::HOME'

After upgrading the laravel 5.8 to laravel 6.x I am getting this error:

Undefined class constant 'App\Providers\RouteServiceProvider::HOME'

Before upgrading the application login system was the custom. After upgrading to laravel 6.x I want to use laravel default authentication. I created authentication through php artisan ui:auth and I copied controllers from fresh laravel app/Http/Controllers/Auth folder with auth related controllers like - LoginController, RegisterController etc.

What should I do to solve the above error? Would someone help me, please?

like image 934
Rashed Hasan Avatar asked Jan 18 '20 12:01

Rashed Hasan


2 Answers

In Laravel 6 the $redirectTo property in the auth controllers was updated so that it was easier to change across the board. Link to PR.

To fix the error you can either add the following to your App\Providers\RouteServiceProvider.php class:

/**
 * The path to the "home" route for your application.
 *
 * @var string
 */
public const HOME = '/home';

or in each of your auth controller update the $redirectTo property to be the route that you want to use:

protected $redirectTo = RouteServiceProvider::HOME;

becomes

protected $redirectTo = '/the-path-you-want-to-redirect-to';
like image 115
Rwd Avatar answered Sep 23 '22 02:09

Rwd


in my case:

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';
    public const HOME = '/home';

just add this line

public const HOME = '/home';

as Laravel documents said https://laravel.com/docs/7.x/authentication#included-authenticating

like image 39
saber tabatabaee yazdi Avatar answered Sep 23 '22 02:09

saber tabatabaee yazdi