进行迁移时,在 Windows 控制台中执行命令:
php artisan migrate
当我运行命令时,它向我显示以下错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Market\Providers\Schema' not found
如果有人可以帮助我,我将不胜感激。
进行迁移时,在 Windows 控制台中执行命令:
php artisan migrate
当我运行命令时,它向我显示以下错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Market\Providers\Schema' not found
如果有人可以帮助我,我将不胜感激。
在该页面顶部添加以下行(提供程序目录下的 AppServiceProvider.php)
use Illuminate\Support\Facades\Schema;
或者
use Schema;
看起来您已经使用本文修复了消息“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
您的迁移代码似乎位于命名空间中,而这正是 PHP 正在寻找Schema类的地方。在文件顶部添加以下内容:
use Schema;
或使用完全限定的命名空间引用Schema类:
\Schema::table(...);
添加到您的 AppServiceProvider.php 文件后
use Illuminate\Support\Facades\Schema;
public function boot()
{
Schema::defaultStringLength(191);
}
别忘了跑
php artisan migrate:fresh
我一直面临同样的问题,因为我没有重新迁移(即删除表并创建新表)