【问题标题】:Adding a DATETIME column via a migration? Should I use macros?通过迁移添加 DATETIME 列?我应该使用宏吗?
【发布时间】:2013-05-03 11:33:02
【问题描述】:

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

public function date($name)
{
    return $this->column(__FUNCTION__, compact('name'));
}

看起来它只是创建了一个 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.");
}

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

【问题讨论】:

  • 不是 $table->timestamp('column') 你在找什么吗?检查laravel.com/docs/database/schema
  • 不,不是时间戳,我需要一个 DATETIME,但最终的答案是“doh”时刻。我会回答我自己的问题...

标签: laravel laravel-3


【解决方案1】:

:\

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

有趣的是,一旦我去那里,实际上当你要求 ->date() 时,Laravel 确实是 already makes DATETIME 列,而不是像我想的那样简单的 DATE 列。

假设:啧啧啧

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-17
    • 2020-11-19
    • 2010-09-07
    • 2011-10-29
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多