PHP致命错误:类';App\Providers\ServiceProvider';找不到,在我修复错误Laravel迁移后:唯一密钥太长,
我刚开始学习Laravel 5.4,并尝试在Laravel中迁移用户表。运行迁移时,出现以下错误: [Illumb\Database\QueryException]SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节 在执行以下操作之后,我现在有另一个错误: PHP致命错误:找不到类“App\Providers\ServiceProvider” 我的迁移代码是PHP致命错误:类';App\Providers\ServiceProvider';找不到,在我修复错误Laravel迁移后:唯一密钥太长,,php,Php,我刚开始学习Laravel 5.4,并尝试在Laravel中迁移用户表。运行迁移时,出现以下错误: [Illumb\Database\QueryException]SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节 在执行以下操作之后,我现在有另一个错误: PHP致命错误:找不到类“App\Providers\ServiceProvider” 我的迁移代码是 use Illuminate\Support\Facades\Schema; publ
use Illuminate\Support\Facades\Schema;
public function boot()
{
//
Schema::defaultStringLength(191);
}
我做错了什么?问题是缺少标识
服务提供者
类所在位置的use
语句。由于AppServiceProvider
类扩展了ServiceProvider
,但没有use
语句,因此PHP假定该类可以在与AppServiceProvider
相同的命名空间中找到。这就是为什么它找不到\App\Providers\ServiceProvider
——因为\App\Providers
是AppServiceProvider
类的名称空间
试试这个
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
您是创建了一个新的服务提供商并将上述代码放入其中,还是将上述代码放入了AppServiceProvider
类中?无论哪种方式,您都可以发布文件的完整代码并对其进行识别,这可能有助于我们帮助您解决问题。我的代码在AppServiceProvider类中,而我的完整代码是…,,,您的AppServiceProvider
类是否仍然具有use-illumb\Support\ServiceProvider代码>其中的语句?不,我将其更改为代码“UseIllumb\Support\Facades\Schema”;不要替换任何内容,只需添加文章中的新内容即可。所以也要像以前的代码一样保留。很好的解释非常感谢@stratedge,它只通过添加“use-illumb\Support\ServiceProvider;”起作用对于我的代码,我所做的错误是更改而不是添加“use-illumb\Support\Facades\Schema;”我再次感谢你解决了这个问题。