2016-06-15 17 views
1

いくつかの配列オブジェクト(フェッチエンティティgetArrayResult())を取得し、それにDateTimeフィールドが含まれているとします。私はこのフィールドダンプ場合:doctrineのDateTimeオブジェクトを自動的に構文解析します

"createdAt": { 
    "date": "2016-06-13 19:35:28.000000", 
    "timezone_type": 100500, 
    "timezone": "Some/Timezone" 
} 

を私は私がいない正常な(素敵なフォーマット済み)日付文字列を持っていることがわかりますが、DateTimeオブジェクト。もちろん、私は素敵なフォーマット文字列を取得するためにこのような何かを書くことができます:

$result['createdAt'] = $result['createdAt']->format("Y-m-d H:i:s"); 

をしかし、私は、例えば、10.000アイテムを取得し(これは:)起こっていることを確認していない)、その後、更新するforループを行う必要がある場合それぞれcreatedAtフィールド...私はそれが少なくとも醜い解決策だと思うので、多分、この状況のた​​めの素晴らしい解決策やベストプラクティスがありますか?

答えて

0

createdAtフィールドが設定されない理由はわかりません。データベースにnullable = false/NOT NULLでなければならないので、チェックする必要はありません。これはベストプラクティスです。

私は、ある時点で作成されましたが、作成されていないことを意味しますか?それは意味がありません。

+0

確かに、素敵なコメントです。私の質問に対する答えではありません。 P.S.質問を更新する – pacification

0

Symfony Serializer componentsを使用して配列をJSONにシリアル化し、DateTimeNormalizerを使用してDateTimeオブジェクトをフォーマットできます。

use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; 
use Symfony\Component\Serializer\Serializer; 

$encoders = array(new JsonEncoder()); 
$normalizers = array(new DateTimeNormalizer('Y-m-d H:i:s')); 

$serializer = new Serializer($normalizers, $encoders); 
$jsonResult = $serializer->serialize($result, 'json');