php artisan migrate:未找到类架构

Fra*_*onR 4 php database web-applications laravel artisan-migrate

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

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

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

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Market\Providers\Schema' not found
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我,我将非常感激.

Sab*_*osh 17

在该页面的顶部添加以下行(在providers目录下的AppServiceProvider.php)

use Illuminate\Support\Facades\Schema;
Run Code Online (Sandbox Code Playgroud)

  • 更准确地说,`AppServiceProvider.php` 文件位于 `app/Providers/AppServiceProvider.php` 中,只是为了澄清并方便人们使用 (2认同)

Yev*_*yev 7

看来您已经使用本文解决了消息“ Laravel 5.4:指定密钥太长错误”的另一个问题,建议您添加以下代码

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}
Run Code Online (Sandbox Code Playgroud)

到名为

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
Run Code Online (Sandbox Code Playgroud)


jed*_*ylo 4

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

use Schema;
Run Code Online (Sandbox Code Playgroud)

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

\Schema::table(...);
Run Code Online (Sandbox Code Playgroud)