2017-07-11 145 views
0

我需要更改文章created_at,因爲我發送短信根據created_at在這個月創建的帖子。當我嘗試這個created_at不會改變價值!Laravel雄辯更新created_at值

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

好了,不說更新created_at - 例如嘗試' - > update('created_at',Carbon :: now())'或類似。 –

+0

@JoelHinz不起作用 –

回答

0

試試這個

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

created_at通常不是mass assigned這樣。你可能需要將其添加到$fillable屬性您Post模型,例如:

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

注意,因爲別人指出,Carbon::today()似乎並不像正確的事情來使用 - 它應該工作,但給你一個午夜的時間。如果你真的想要一個準確的時間戳,你可能想要Carbon::now()

1

Carbon::today()實際上並沒有生成有效的時間戳。您需要使用Carbon::today()->toDateTimeString()才能獲得有效的時間戳。

更新片段:

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

['Carbon :: today()'](http://carbon.nesbot.com/docs/)確實會生成有效的時間戳。 –