【问题标题】:In Facade.php line 237: Call to undefined method Illuminate\Database\Schema\MySqlBuilder::defaultStringLenght()在 Facade.php 第 237 行:调用未定义的方法 Illuminate\Database\Schema\MySqlBuilder::defaultStringLenght()
【发布时间】:2019-09-28 20:51:25
【问题描述】:

我正在尝试通过命令迁移 Laravel5.8 中的 MySQL 表

$ php artisan migrate

我收到了这个错误

In Facade.php line 237: 
    Call to undefined method 
    Illuminate\Database\Schema\MySqlBuilder::defaultStringLenght()

我已经在 AppServiceProvider.php 文件中设置了 use Illuminate\Support\Facades\Schema;
defaultStringLenght(191); // boot() method

Schema::create('posts', function (Blueprint $table) {
      $table->increments('id');  
      $table->string('title'); 
      $table->mediumText('body');
      $table->timestamps(); 
    });

【问题讨论】:

    标签: laravel laravel-artisan migrate


    【解决方案1】:

    首先你需要正确调用方法并检查长度的拼写。

     public function boot()
        {
            Schema::defaultStringLength(191);
        }
    

    而且你还需要导入 Schema Facade

    use Illuminate\Support\Facades\Schema;
    

    【讨论】:

    • 感谢您的回答,也许我问错了……但我写道,我已经调用了公共函数 boot() 。当然,我正确调用了该方法,并且我也在同一个文件 AppServiceProvider.php 中导入了 Schema Facade。我不知道它有什么问题。
    • 谢谢阿迪亚·塔库尔。我检查了代码 100x 并没有看到拼写错误。
    • @Bomir,错别字会让人头疼,你用什么IDE? IDE的likevscode可以轻松高亮此类错误,节省大量时间:)
    • Aditya Thakur ,我正在用 PSPad 写东西,我想我会为 VisualStudio 改一下。
    【解决方案2】:

    在你需要使用的app\Providers\AppServiceProvider.php中

    use Illuminate\Support\Facades\Schema; 
    

    然后在启动函数中你需要写 架构::defaultStringLength(191); 你的启动功能会是这样的

    public function boot()
        {
            Schema::defaultStringLength(191);
        }
    

    【讨论】:

    • 感谢您的回答,也许我问错了……但我写道,我已经调用了公共函数 boot() 。当然,我正确调用了该方法,并且我也在同一个文件 AppServiceProvider.php 中导入了 Schema Facade。我不知道它有什么问题。
    • 亲爱的 Schema::defaultStringLength(191) 而不是 defaultStringLenght(191) 你写错了长度的咒语我希望现在不是显示任何错误。谢谢
    • 非常感谢阿德南阿里
    猜你喜欢
    • 2018-06-14
    • 2017-06-25
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 2014-04-23
    • 1970-01-01
    • 2020-01-04
    相关资源
    最近更新 更多