Laravel: метод defaultStringLength не найден в \ Illuminate \ Support \ Facades \ Schema - PullRequest
0 голосов
/ 19 января 2019

Я использую 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 голосов
/ 19 января 2019

Однажды я столкнулся с той же проблемой и следовал ответу по следующей ссылке, чтобы решить мою проблему. https://stackoverflow.com/a/44859379/4437710

В общем, замените use Illuminate\Support\Facades\Schema; на use Schema; Я не знаю причину этого странного поведения. Я не уверен, что это сработает и в вашем случае. Но вы можете попробовать.

Еще один трюк из интернета (не проверено мной): Для Laravel 5.4 используйте \Illuminate\Database\Schema\Builder::defaultStringLength(191); для правильного пути ссылки на функцию вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...