Php 使用";时如何更改时间戳列名;artisan迁移“;?

Php 使用";时如何更改时间戳列名;artisan迁移“;?,php,laravel,laravel-4,Php,Laravel,Laravel 4,我正在努力更改由生成的时间戳列名 php artisan migrate 指挥部 我已经做了以下更改。当我使用Elount query builder时,它可以正确生成列名,但当我使用上面的命令时,它仍然会生成“created_at”、“updated_at”和“deleted_at”。有人能帮我吗?非常感谢 /* vendor\framework\src\Illuminate\Database\Eloquent\Model.php */ /** * The name of the "cr

我正在努力更改由生成的时间戳列名

php artisan migrate
指挥部

我已经做了以下更改。当我使用Elount query builder时,它可以正确生成列名,但当我使用上面的命令时,它仍然会生成“created_at”、“updated_at”和“deleted_at”。有人能帮我吗?非常感谢

/* vendor\framework\src\Illuminate\Database\Eloquent\Model.php */

/**
 * The name of the "created at" column.
 *
 * @var string
 */
const CREATED_AT = 'datetime_created';

/**
 * The name of the "updated at" column.
 *
 * @var string
 */
const UPDATED_AT = 'datetime_updated';

/**
 * The name of the "deleted at" column.
 *
 * @var string
 */
const DELETED_AT = 'datetime_deleted';


另外,我知道修改“核心”不是个好主意。如果有人能告诉我扩展这些类的最佳方法,我将不胜感激。

永远不要编辑
供应商
文件夹下的代码。首先,它通常(默认情况下)不随存储库携带,因此如果您或任何其他人想要在另一台机器上工作,您将丢失更改第二次,它将在您执行
编写器更新时被覆盖


话虽如此,让我们开始处理这种“修改核心”的恐怖。对于
illumb\Database\Eloquent\Model.php
,只需创建一个基础模型,从中扩展所有后续模型,并覆盖其中的常量:

app/models/BaseModel.php

abstract class BaseModel extends Eloquent {

    /**
     * The name of the "created at" column.
     *
     * @var string
     */
    const CREATED_AT = 'datetime_created';

    /**
     * The name of the "updated at" column.
     *
     * @var string
     */
    const UPDATED_AT = 'datetime_updated';

    /**
     * The name of the "deleted at" column.
     *
     * @var string
     */
    const DELETED_AT = 'datetime_deleted';

}
然后,对于
illumb\Database\Schema\Blueprint
案例。。。好吧,它变得血腥:

  • 扩展
    。\Schema\Blueprint
    ,覆盖您提到的方法
  • 扩展
    。\Schema\Builder
    ,覆盖
    createBlueprint
    方法以使用新的
    Blueprint
    类。
    • 还可以扩展
      。\Schema\MySqlBuilder
      以从新的
      生成器
      类扩展
  • 扩展
    。\Connection
    ,覆盖
    getSchemaBuilder
    方法以使用新的
    Builder
    类。
    • 同时扩展
      。\MySqlConnection
      。\PostgresConnection
      。\SqlServerConnection
      。\SQLiteConnection
      以从新的
      连接
      类扩展
    • 注意:
      。\MySqlConnection
      还需要扩展其
      getSchemaBuilder
      方法,以使用新的
      MySqlBuilder
  • 扩展
    。\ConnectionFactory
    ,覆盖
    createConnection
    方法以使用扩展的
    连接
  • 创建一个
    ServiceProvider
    以将新的
    ConnectionFactory
    类注册为新的
    db.factory
    组件,并将其添加到
    app/config/app.php
    文件的
    providers
  • 因此,经过半个小时对Laravel的源代码的深入研究,我得出结论,在迁移过程中简单地执行以下操作可能会更容易:

    $table->timestamp(BaseModel::CREATED_AT);
    $table->timestamp(BaseModel::UPDATED_AT);
    

    伟大的非常感谢您的回复!我真的很感谢你的帮助。由于我大约8小时前在办公室完成了工作,我可能明天只能在家里的电脑上试试。
    $table->timestamp(BaseModel::CREATED_AT);
    $table->timestamp(BaseModel::UPDATED_AT);