通过迁移添加 DATETIME 列?我应该使用宏吗?

Adi*_*M P 5 laravel laravel-3

Laravel 4 中有一个dateTime()函数可以帮助创建这些列。但在Schema\TableLaravel 3 中,我只看到一个date()函数,它是:

public function date($name)
{
    return $this->column(__FUNCTION__, compact('name'));
}
Run Code Online (Sandbox Code Playgroud)

看起来它只是创建了一个 DATE 列。不过,我也看到了这个神奇的功能:

public function __call($method, $parameters)
{
    if (isset(static::$macros[$method]))
    {
        array_unshift($parameters, $this);
        return call_user_func_array(static::$macros[$method], $parameters);
    }

    throw new \Exception("Method [$method] does not exist.");
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用此函数创建 DATETIME 列?我该怎么办?在文档中找不到此信息。

Adi*_*M P 3

:\

事实证明,宏是最近添加的(非常酷)功能,但这对我没有帮助。为了添加一个新列,实际上必须修改该类Schema\Table,然后在表列的MySQL 语法文件中添加一个新方法。宏只能帮助同时使用现有的表方法执行多项操作。

有趣的是,一旦我去了那里,实际上 Laravel 确实已经在你要求时创建了 列,而不是像我想象的那样简单的列。DATETIME->date()DATE

假设:啧啧。