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)
看来您已经使用本文解决了消息“ 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的用户,在尝试运行迁移时可能会遇到以下错误:
Run Code Online (Sandbox Code Playgroud)[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;
Run Code Online (Sandbox Code Playgroud)
或使用完全限定的命名空间引用Schema类:
\Schema::table(...);
Run Code Online (Sandbox Code Playgroud)