即使我已将时间戳设置为false,Laravel仍会为updated_at列设置值

时间:2014-08-25 23:14:30

标签: php laravel-4

我有一个public $timestamps = false的模型。当我调用$model->save()时,即使我在调用updated_at之前没有将update_at设置为我的代码中的任何值,也会向我的数据库中的save()列添加一个值。

我的数据库中updated_at列的默认值为NULL。它之后设置的值是我服务器上的当前时间(如果我在终端/ CLI上调用date,则会得到同一时间)。预期的行为是updated_at只是设置为NULL,除非我明确设置$model->updated_at

我正在使用Apache 2.4.7(Ubuntu),PHP 5.5.9,MySQL 5.5.35和Laravel 4.1.30。

1 个答案:

答案 0 :(得分:0)

事实证明,在调用save()方法之后,我在更新时间戳的同一模型上调用了touch()方法。我删除了touch()语句。为了让自己完全控制created_atupdated_at列,我还通过将以下代码添加到模型类来禁用日期突变:

public function getDates()
{
    return array();
}