Laravel Migration致命错误:调用未定义的方法Illuminate \ Database \ Schema \ Blueprint :: integar()

时间:2016-04-22 08:19:47

标签: php laravel laravel-5.2

我的代码:

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;

class CreateTasksTable extends Migration

{
    /**
     * Run the migrations.

     *
     * @return void
     */
    public function up()
    {
        Schema::create('tasks', function (Blueprint $table) {
            $table->increments('id');
             $table->integar('user_id')->index();
            $table->string('name');
            $table->string('food');
            $table->string('quantity');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('tasks');
    }
}

3 个答案:

答案 0 :(得分:14)

您错误地写了integer拼写,请写integer而不是integar

这是我的工作示例代码,请参阅整数行,希望对您有帮助

public function up()
{
    Schema::create('app_type_users', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned()->index();
        $table->integer('app_type_id')->unsigned()->index();
        $table->string('status',1);
        $table->timestamps();
    });
}

答案 1 :(得分:1)

如果您看到:" 调用未定义的方法"错误通常意味着你拼错了一些东西。我有类似的东西让我发疯,我在链接方法时错过了一个箭头:

Error location

看看这里,它甚至说你需要检查哪条线: Error message 注意命令行告诉你的内容,这些提示比我小心承认更明显!

答案 2 :(得分:0)

转到项目文件夹,打开app / Providers / AppServiceProvider.php,添加以下代码,然后在控制台中运行php artisan migration

namespace App\Providers;

使用Illuminate \ Support \ ServiceProvider; 使用Illuminate \ Support \ Facades \ Schema;

AppServiceProvider类扩展了ServiceProvider { / ** *引导所有应用程序服务。 * * @返回无效 * / 公共功能boot() { 架构:: defaultStringLength(191); }

/**
 * Register any application services.
 *
 * @return void
 */
public function register()
{
    //
}

}

即使在更改代码内容后仍无法迁移数据库,也可以尝试在此函数 defaultStringLength(191)上更改Number。 更改为99,199或191;