我正在尝试覆盖特定表上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 | |
+-----------------------+------------------+------+-----+-----------------------------------------+----------------+
也许我错过了什么吗?
答案 0 :(得分:1)
如果您勾选Illuminate\Database\Schema\Blueprint
,您一定会看到它。
public function timestamps()
{
$this->timestamp('created_at')->nullable();
$this->timestamp('updated_at')->nullable();
}
如果您不想更改created_at
和updated_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();
});