5

进行迁移时,在 Windows 控制台中执行命令:

php artisan migrate

当我运行命令时,它向我显示以下错误:

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Market\Providers\Schema' not found

如果有人可以帮助我,我将不胜感激。

4

4 回答 4

28

在该页面顶部添加以下行(提供程序目录下的 AppServiceProvider.php)

use Illuminate\Support\Facades\Schema;

或者

use Schema;
于 2017-09-17T13:43:23.733 回答
12

看起来您已经使用本文修复了消息“Laravel 5.4:Specified key was too long error”的另一个问题,建议您添加以下代码

use Illuminate\Support\Facades\Schema;

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

到名为的文件

AppServiceProvider.php

而您实际上只更改了boot方法而忘记更新该use部分。我对吗?

文章说:

Laravel 5.4 对默认数据库字符集进行了更改,现在是 utf8mb4,其中包括对存储表情符号的支持。这只会影响新应用程序,只要您运行 MySQL v5.7.7 及更高版本,您就不需要做任何事情。

对于那些运行 MariaDB 或旧版本 MySQL 的用户,在尝试运行迁移时可能会遇到此错误:

[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or
access violation: 1071 Specified key was too long; max key length is
767 bytes (SQL: alter table users add unique
users_email_unique(email))

[PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071
Specified key was too long; max key length is 767 bytes
于 2017-08-27T08:38:04.247 回答
4

您的迁移代码似乎位于命名空间中,而这正是 PHP 正在寻找Schema类的地方。在文件顶部添加以下内容:

use Schema;

或使用完全限定的命名空间引用Schema类:

\Schema::table(...);
于 2017-05-05T13:51:02.603 回答
0

添加到您的 AppServiceProvider.php 文件后

use Illuminate\Support\Facades\Schema;

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

别忘了跑

php artisan migrate:fresh

我一直面临同样的问题,因为我没有重新迁移(即删除表并创建新表)

于 2021-08-02T19:13:05.163 回答