Laravel:在\ Illuminate \ Support \ Facades \ Schema中找不到方法'defaultStringLength'

时间:2019-01-19 08:23:35

标签: php laravel-5

我正在使用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()
    {
        //
    }
}

1 个答案:

答案 0 :(得分:2)

我曾经遇到过同样的问题,并按照以下链接的回答解决了我的问题。 https://stackoverflow.com/a/44859379/4437710

基本上,将new Text替换为use Illuminate\Support\Facades\Schema;,我不知道这种奇怪行为的原因。我不确定它是否也适用于您的情况。但是您可以尝试一下。

从互联网上获取的另一种技巧(未经我测试) 对于Laravel 5.4,请改用use Schema;作为正确的函数引用路径