ソースを掘り下げましたが、タイムスタンプのタイプはハードコーディングされているため、単に再構成することはできませんDateTime
。
より良いアプローチは、(timestamps() を使用せずに) 独自の列を作成し、モデルでこれを行うことだと思います:
public class User extends Eloquent
{
public function save()
{
$this->attributes['created_at'] = new DateTime;
return parent::save();
}
}
別のアプローチは、ModelObserversを使用することです。
class UserObserver {
public function saving($model)
{
//
}
}
User::observe(new UserObserver);
timestamp()
また、クラスの関数をオーバーライドすることもできますがBlueprint
、日付などを処理するために Carbon を使用するため、コードの他の場所で Laravel を台無しにしないという保証はありません ...
class MyBlueprint extends Blueprint
{
public function timestamp($column)
{
return $this->addColumn('dateTime', $column);
}
}
次に、移行用のテーブル構造を定義するときに MyBlueprint を使用します。
Schema::create('users', function(MyBlueprint $table) {
// code
$this->timestamps();
}