进行迁移时,在Windows控制台中执行命令:
php artisan migrate
当我运行该命令时,它显示以下错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Market\Providers\Schema' not found
如果有人能帮助我,我将非常感激。
答案 0 :(得分:14)
在该页面的顶部添加以下行(在provider目录下的AppServiceProvider.php)
use Illuminate\Support\Facades\Schema;
答案 1 :(得分:5)
您似乎已使用this article解决了“Laravel 5.4:指定密钥错误太长”的问题,并建议您添加以下代码
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
答案 2 :(得分:2)
您的迁移代码似乎位于命名空间中,而PHP正在寻找 Schema 类。在文件顶部添加以下内容:
use Schema;
或使用完全限定的命名空间引用架构类:
\Schema::table(...);
答案 3 :(得分:0)
添加到您的 AppServiceProvider.php 文件后
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
别忘了跑步
php artisan migrate:fresh
我一直面临同样的问题,因为我没有进行新迁移(即删除表并创建新表)