未定义 class 常量 'App\Providers\RouteServiceProvider::HOME'
Undefined class constant 'App\Providers\RouteServiceProvider::HOME'
将 laravel 5.8 升级到 laravel 6.x 后出现此错误:
Undefined class constant 'App\Providers\RouteServiceProvider::HOME'
升级前应用登录系统是习惯的。升级到 laravel 6.x 后,我想使用 laravel 默认身份验证。我通过 php artisan ui:auth
创建了身份验证,并从新的 laravel app/Http/Controllers/Auth
文件夹中复制了控制器,其中包含与身份验证相关的控制器,例如 - LoginController
、RegisterController
等
我应该怎么做才能解决上述错误?请有人帮助我吗?
在 Laravel 6 中,auth 控制器中的 $redirectTo
属性 已更新,因此更容易全面更改。 Link to PR.
要修复错误,您可以将以下内容添加到 App\Providers\RouteServiceProvider.php
class:
/**
* The path to the "home" route for your application.
*
* @var string
*/
public const HOME = '/home';
或在您的每个身份验证控制器中将 $redirectTo
属性 更新为您要使用的路由:
protected $redirectTo = RouteServiceProvider::HOME;
变成
protected $redirectTo = '/the-path-you-want-to-redirect-to';
在我的例子中,我已经将 protected $redirectTo = RouteServiceProvider::HOME;
中的单词 HOME
更改为小写 home
就像 protected $redirectTo = RouteServiceProvider::home;
导致我出现上述错误的原因,所以我'我们只是把它重新变成大写,现在可以了!
我遇到了同样的问题,我发现它不是同一个常量
在 RouteServiceProvider class 中,你会发现 Home 不是 HOME。我认为 LARAVEL 这个问题是因为我的项目是新项目。
我的LARAVEL版本是7.7.0
就我而言:
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';
只需添加这一行
public const HOME = '/home';
正如 Laravel 文档所述 https://laravel.com/docs/7.x/authentication#included-authenticating
将 laravel 5.8 升级到 laravel 6.x 后出现此错误:
Undefined class constant 'App\Providers\RouteServiceProvider::HOME'
升级前应用登录系统是习惯的。升级到 laravel 6.x 后,我想使用 laravel 默认身份验证。我通过 php artisan ui:auth
创建了身份验证,并从新的 laravel app/Http/Controllers/Auth
文件夹中复制了控制器,其中包含与身份验证相关的控制器,例如 - LoginController
、RegisterController
等
我应该怎么做才能解决上述错误?请有人帮助我吗?
在 Laravel 6 中,auth 控制器中的 $redirectTo
属性 已更新,因此更容易全面更改。 Link to PR.
要修复错误,您可以将以下内容添加到 App\Providers\RouteServiceProvider.php
class:
/**
* The path to the "home" route for your application.
*
* @var string
*/
public const HOME = '/home';
或在您的每个身份验证控制器中将 $redirectTo
属性 更新为您要使用的路由:
protected $redirectTo = RouteServiceProvider::HOME;
变成
protected $redirectTo = '/the-path-you-want-to-redirect-to';
在我的例子中,我已经将 protected $redirectTo = RouteServiceProvider::HOME;
中的单词 HOME
更改为小写 home
就像 protected $redirectTo = RouteServiceProvider::home;
导致我出现上述错误的原因,所以我'我们只是把它重新变成大写,现在可以了!
我遇到了同样的问题,我发现它不是同一个常量 在 RouteServiceProvider class 中,你会发现 Home 不是 HOME。我认为 LARAVEL 这个问题是因为我的项目是新项目。
我的LARAVEL版本是7.7.0
就我而言:
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';
只需添加这一行
public const HOME = '/home';
正如 Laravel 文档所述 https://laravel.com/docs/7.x/authentication#included-authenticating