试图获得非对象的属性在php工匠迁移命令


Trying to get property of non-object on php artisan migrate command

以下运行成功后php artisan migrate:install

我尝试运行下面的代码来生成一个用户表 php artisan migrate从我的迁移中,我得到以下

error [ErrorException]试图获取非对象的属性

迁移看起来像这样:

public function up()
{
    Schema::table('user', function(Blueprint $table)
    {   
        $table->increments('id');
        $table->string('username', 128)->nullable()->default(null);
        $table->string('password')->nullable()->default(null);
        $table->string('email')->nullable()->default(null);
        $table->timestamps()->nullable->default(null);
    });
}

查看上面的代码,错误似乎在这里:

$table->timestamps()->nullable->default(null);

应该是:

$table->timestamps();

方法timestamps不能与nullable属性或nullable()方法连锁。由$table->timestamps()创建的数据库字段是created_atupdated_at,默认情况下它们的值是时间戳0000-00-00 00:00:00,我认为你不能改变它。

另外,如果您在其他字段中设置了nullable(),则不需要在此之后添加default(null),因为这些字段将以NULL作为默认值。

UPDATE:如果迁移是为了创建一个新表,您还需要用Schema::create替换Schema::table