Laravel Eloquent更新created_at值

时间:2017-07-11 09:27:52

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

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

sed -ri 's:(^\[my title.*)[.](.*$):\1 \2:' filename

3 个答案:

答案 0 :(得分:2)

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

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

请注意,正如其他人指出的那样,Carbon::today()似乎不适合使用 - 它应该有用,但会给你一个午夜的时间。如果你真的想要一个准确的时间戳,你可能想要Carbon::now()

答案 1 :(得分:1)

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

更新了代码段:

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

答案 2 :(得分:0)

试试这个

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