覆盖Laravel时间戳的默认名称无效

时间:2019-03-14 22:58:09

标签: laravel-5

我正在尝试覆盖特定表上Laravel时间戳的默认名称,但似乎根本没有任何作用。

我用以下内容更新了我的模型:

/**
 * The name of the "created_at" column.
 *
 * @var string
 */
const CREATED_AT = 'CreatedAt';



/**
 * The name of the "updated_at" column.
 *
 * @var string
 */
const UPDATED_AT = 'UpdatedAt';

更新了迁移:

    ...
    $table->integer( 'UpdatedBy' )->nullable();
    $table->timestamps();
});

我运行迁移并检查数据库中的结果,发现字段没有更改:

...
| UpdatedBy             | int(11)          | YES  |     | NULL                                    |                |
| created_at            | timestamp        | YES  |     | NULL                                    |                |
| updated_at            | timestamp        | YES  |     | NULL                                    |                |
+-----------------------+------------------+------+-----+-----------------------------------------+----------------+

也许我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

如果您勾选Illuminate\Database\Schema\Blueprint,您一定会看到它。

public function timestamps()
{
    $this->timestamp('created_at')->nullable();

    $this->timestamp('updated_at')->nullable();
}

如果您不想更改created_atupdated_at列,则可以使用

...
    $table->integer( 'UpdatedBy' )->nullable();
    $table->timestamp(CorrespondModel::CREATED_AT)->nullable();
    $table->timestamp(CorrespondModel::UPDATED_AT)->nullable();
});

或直接创建新名称

...
    $table->integer( 'UpdatedBy' )->nullable();
    $table->timestamp('CreatedAt')->nullable();
    $table->timestamp('UpdatedAt')->nullable();
});