2016-07-22 1 views
1

Я пытаюсь сохранить дату и время использования углерода в документе Sub Json, но вместо сохранения в формате ISO его сохранение по-разному показано ниже.Как сохранить объект ISO-объекта Carbon DateTime в документе Sub Json в Laravel 5.2 MongoDB

"_id" : ObjectId("5791bc3d6e79d211aa5be019"), 
"breakUps" : [ 
    { 
     "amount" : 2000, 
     "expiry" : { 
      "date" : "2016-09-05 06:25:01.000000", 
      "timezone_type" : 3, 
      "timezone" : "UTC" 
     } 
    } 
], 
"updated_at" : ISODate("2016-07-22T06:25:01.576Z"), 
"created_at" : ISODate("2016-07-22T06:25:01.576Z") 

Вместо этого он должен был быть сохранен как ISODate ("2016-07-22T06: 25: 01.576Z") формат.

Мой Eloquent Модель класса:

class Configurations extends Eloquent 
{ 
    public $incrementing = false; 
    public $timestamps = true; 
    protected $collection = 'configurations'; 
    protected $dates = array('created_at','updated_at','breakUps.expiry'); 
} 

PHP код, который я использую для сохранения объекта

$config1 = new Configurations(); 
$config1->breakUps = [['amount' => 1000, 'expiry' => Carbon::now()->addDays(30)]]; 
$config1->save(); 
+0

Могу ли я посмотреть, как вы спасаете взломы –

+0

темы, обсуждаемые здесь https://github.com/jenssegers/laravel-mongodb/issues/897 – Sharath

ответ

2

Дата мутаторов в Laravel не поддерживают точечную нотацию и, следовательно,

protected $dates = ['breakUps.expiry']; 

просто не сработает. Один простой способ решить эту проблему - переместить ключ в корень документа как breakUps_expiry.

protected $dates = ['breakUps_expiry']; 

Существует уже вопрос авторизовались на странице GitHub Laravel-MongoDB, вы можете track it here.

0

Работы, вокруг которой работали для меня была использовать необработанное Монго Date объект нового \ MongoDate(), и при возвращении его, использовать методы углерода

Смежные вопросы