2017-02-14 3 views
0

MongoDBコレクションに複数の埋め込みドキュメントが設定されています。これは私のサンプル文書がどのように見えるかです:Laravel 5.4 with MongoDB - 埋め込みドキュメントを取得しようとしています

{ 
    "_id" : ObjectId("58a331ffb854d000f97862f3"), 
    "first_name" : "John", 
    "last_name" : "Doe", 
    "email" : "[email protected]", 
    "password" : "$2y$10$fIuECeTqvSUY1g.VPgWxceEzB0/q2OtgDXlm9ZTqwY77U74hVEe6q", 
    "updated_at" : ISODate("2017-02-14T16:36:15.079Z"), 
    "created_at" : ISODate("2017-02-14T16:36:15.079Z"), 
    "diagnosis" : [ 
     { 
      "d_name" : "Asthma", 
      "d_isTreated" : "No", 
      "d_diagnosed_at" : "2017-02-14" 
     }, 
     { 
      "d_name" : "Bronchitis", 
      "d_isTreated" : "No", 
      "d_diagnosed_at" : "2017-02-14" 
     }, 
     { 
      "d_name" : "Hepatitis C", 
      "d_isTreated" : "No", 
      "d_diagnosed_at" : "2017-02-14" 
     } 
    ] 
} 

親文書がUserクラスに属します。しかし、私のホーム・ページビューで私はこのようなユーザごとに診断のリストを取得しようとすると:

<center> 
    @foreach($users as $user) 
     {{ $user->diagnosis }} 
    @endforeach 
</center> 

Laravelはdiagnosisオブジェクトの配列を取得することができず、エラーを出力します

ErrorException in helpers.php line 532: 
htmlspecialchars() expects parameter 1 to be string, array given (View: /Users/janisozolins/Sites/patientapp/resources/views/home.blade.php) 

これらの配列はどのように取得できますか?また、Diagnosis文書のそれぞれにPrescriptionsサブ文書を追加することで、それらをさらに埋め込む予定です。

答えて

0

診断アレイを反復処理する必要があります。

@foreach($users as $user) 
     @foreach $diagnosis as $user->diagnosis 
      {{ var_dump($diagnosis) }} 
     @endforeach 
    @endforeach 
+0

これは正しいアプローチだと思われますが、システムは現在CompilesLoops.php行80:未定義オフセット:1'でErrorExceptionを返します。私はそれを取得中に間違った配列のオフセットを使用して何かを持っていると仮定? – JanisOzolins

関連する問題