【问题标题】:Laravel Eloquent update created_at valueLaravel Eloquent 更新 created_at 值
【发布时间】:2017-07-11 09:27:52
【问题描述】:

我需要更改帖子 created_at,因为我根据 created_at 向本月创建的帖子发送短信。当我尝试使用这个 created_at 时不会改变值!

public function Controller(Posts $post){
    $post->update(['created_at'=>Carbon::today()]);
}

【问题讨论】:

  • 好吧,它并没有说要更新 created_at - 例如尝试->update('created_at', Carbon::now()) 或类似名称。
  • @JoelHinz 不起作用

标签: php laravel laravel-5 laravel-5.3 php-carbon


【解决方案1】:

created_at 通常不是这样的mass assigned。您可能需要将其添加到 Post 模型的 $fillable 属性中,例如:

protected $fillable = [...., 'created_at']; 

请注意,正如其他人指出的那样,Carbon::today() 似乎不适合使用 - 它可以工作并提供有效的时间戳,但时间戳是午夜的。如果您真的想要更改的实际时间,您可能想要Carbon::now()

【讨论】:

    【解决方案2】:

    Carbon::today() 实际上并没有生成有效的时间戳。您需要使用Carbon::today()->toDateTimeString() 来获取有效的时间戳。

    更新了sn-p:

    public function Controller(Posts $post){
        $post->update(['created_at' => Carbon::today()->toDateTimeString()]);
    }
    

    【讨论】:

    【解决方案3】:

    试试这个

    public function Controller(Posts $post){
          $post->created_at = Carbon::today();
          $post->save(['timestamps' => false]);
    }
    

    【讨论】:

      猜你喜欢
      • 2016-04-19
      • 2018-03-29
      • 1970-01-01
      • 2016-04-01
      • 2016-04-12
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多