json として返したいモデルがあります。タイムスタンプも返したいです。問題は、タイムスタンプが次の形式 2013-10-02 09:45:22 で保存されることですが、別の形式で保存したいです。データベースには元の形式が必要ですが、JSON として出力される場合は 2013.10.02 が必要です。getDateFormat() をオーバーライドできることがわかりましたが、データベースで使用される形式が変更されているようです。
データが返される前にいつでもデータをループできますが、この種のコードはモデルに属しているようです。
回答で更新:
これは、ロード時にLaravel / Eloquentモデルにカスタム属性を追加しますか? これがどのように機能するかを説明します。
class User extends Eloquent {
protected $appends = array('my_date');
public function getMyDateAttribute()
{
return date('Y.m.d',strtotime($this->attributes['created_at']));
}
}
重要な部分は、保護された変数 $appends です。これにより、オブジェクトが toArray または Json に変換されるときにアクセサーが確実に含まれるようになります。