2013-05-09 56 views
4

在Laravel 4中有一個dateTime()函數可以幫助創建這些列。但在Schema\Table在Laravel 3,我只看到一個date()功能,那就是:通過遷移添加DATETIME列?我應該使用宏嗎?

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列?我該如何解決它?在文檔中找不到此信息。

+0

不是$ table-> timestamp('column')你在找什麼?檢查http://laravel.com/docs/database/schema。 – 2013-05-09 05:16:14

+1

不,不是一個時間戳,我需要一個DATETIME,但最終的答案是'doh'時刻。我會回答我自己的問題... – 2013-05-09 07:50:28

回答

3

:\

原來宏是recently added(非常酷)功能,但是這不會幫助我。爲了添加新列,實際上必須修改Schema\Table類,然後在MySQL grammars文件中爲表列添加新方法。宏只能幫助您一次對現有的表方法執行多項操作。

有趣的是,有一次我去那裏,它實際上原來,Laravel確實already makesDATETIME列時,你問->date(),不是一個簡單的DATE柱像我想。

假設:tut,tut。