2016-04-25 7 views
0

私が使用していますjenssegersが 私は私のコントローラでのcreated_atとupdated_atのを保存しようとしているのはMongoDBのcreated_at中とLaravelのフィールドupdated_atの日時、間違っ5.2

"updated_at" : ISODate("1970-01-11T19:45:21.925Z"), 
"created_at" : ISODate("1970-01-11T19:45:21.925Z") 

とさえも、更新のために、間違った日付が

を保存します私app.phpで

別名で

'Moloquent' => 'Jenssegers\Mongodb\Eloquent\Model', 
私のモデルで提供

'Jenssegers\Mongodb\Auth\PasswordResetServiceProvider', 

で210

use Moloquent; 

class Task extends Moloquent{ 
     //$fillables = []; 
} 

enter image description here

事前に発行し 感謝の解決に私を助けてください!実際

+0

'jenssegers/Laravel-MongoDB'パッケージを使用していますか?また、なぜ手動でcreated_atとupdated_atを手動で設定したいのですか(作成時に自動的に設定されるので)? – felipsmartins

+0

は、insertでコメント付きのcreated_atとupdated_atをコメントし、db "updated_at"に保存しました:ISODate( "1970-01-15T17:25:44.107Z")、 "created_at":ISODate( "1970-01-15T17:25:44.107Z ") 日付が間違っている理由もデータを取得できません@felipsmartins – Gireesh

+0

なぜ手動でcreated_atとupdated_atを設定しますか? – felipsmartins

答えて

2

- 新しいモデルオブジェクトを保存するときに自動的に設定されているのcreated_atと updated_atの属性 - jenssegers/Laravel-MongoDBパッケージを使用しました。

しかし、手動でタイムスタンプや他のdatetimeフィールドを設定する場合は、DateTimeオブジェクト(またはCarbon)をMongoDB\BSON\UTCDateTimeに変換する必要があります。

だから、このようなものになるだろう:

$myModel = new MyModel(); 
$myModel->created_at = $myModel->fromDateTime(new \DateTime()); 
//... 

、別の日時については、のcreated_at/updated_atの以外の属性:それは親モデルから継承するよう

class Task extends Model 
{ 
    protected $collection = 'tasks'; 

    protected $duedate; 

    protected $dates = ['duedate']; 

    /** Mutator */ 
    public function setDuedateAttribute($value) 
    { 
     /** @var \MongoDB\BSON\UTCDateTime */ 
     $this->attributes['duedate'] = $this->fromDateTime(
      \DateTime::createFromFormat('d/m/Y H:i', $value . '00:00')); 
    } 
} 

Jenssegers\Mongodb\Eloquent::fromDateTime()は、どのモデルインスタンスから提供されています(github参照)。このメソッドは、DateTimeを格納可能なUTCDateTimeオブジェクト(内部datetime mongo rep)に変換します。

+0

Jenssegers \ Mongodb \ Eloquent :: fromDateTime()、これをどこに追加しますか? – Gireesh

+0

@Gireesh私は答えを更新しました。 – felipsmartins

+0

助けてくれてありがとう。しかし、正確な日付を得るのを助けてくれますか?私の日付は1970-01-15として保存されています – Gireesh