我正在使用PHPStorm,正在学习Laravel。
对于“键过长”错误,我在这里进行修复:https://laravel.com/docs/master/migrations#creating-indexes
但是,PHPStorm抱怨
Method 'defaultStringLength' not found in \Illuminate\Support\Facades\Schema
为什么以及如何解决?这是我的AppServiceProvider.php
文件
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
/**
* Fix for key too long.
* @see https://laravel.com/docs/master/migrations#creating-indexes
*/
Schema::defaultStringLength(191);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
答案 0 :(得分:2)
我曾经遇到过同样的问题,并按照以下链接的回答解决了我的问题。 https://stackoverflow.com/a/44859379/4437710
基本上,将new Text
替换为use Illuminate\Support\Facades\Schema;
,我不知道这种奇怪行为的原因。我不确定它是否也适用于您的情况。但是您可以尝试一下。
从互联网上获取的另一种技巧(未经我测试)
对于Laravel 5.4,请改用use Schema;
作为正确的函数引用路径