首页 文章

PHP致命错误:在我修复错误的Laravel迁移后找不到类'App\Providers\ServiceProvider':唯一键太长,

提问于
浏览
2

我刚开始学习Laravel 5.4并尝试在Laravel中迁移用户表 . 当我运行迁移时,我收到此错误:

[Illuminate \ Database \ QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为767字节

在关注this tutorial之后,我现在又出现了一个错误:

PHP致命错误:找不到类'App \ Providers \ ServiceProvider'

我的迁移代码是

use Illuminate\Support\Facades\Schema;

public function boot()
{
    //
    Schema::defaultStringLength(191);
}

我究竟做错了什么?

1 回答

  • 5

    问题是您缺少 use 语句来标识 ServiceProvider 类的位置 . 由于 AppServiceProvider 类扩展 ServiceProvider ,但没有 use 语句,因此PHP假定该类可以在与 AppServiceProvider 相同的命名空间中找到 . 这就是它无法找到 \App\Providers\ServiceProvider 的原因 - 因为 \App\ProvidersAppServiceProvider 类的命名空间 .

    试试这个

    <?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()
        {
            //
        }
    }
    

相关问题