Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP致命错误:类';App\Providers\ServiceProvider';找不到,在我修复错误Laravel迁移后:唯一密钥太长,_Php - Fatal编程技术网

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

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

我刚开始学习Laravel 5.4,并尝试在Laravel中迁移用户表。运行迁移时,出现以下错误:

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

在执行以下操作之后,我现在有另一个错误:

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

我的迁移代码是

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;”我再次感谢你解决了这个问题。