Laravel 5.4 с MongoDB - пытается получить вложенные документы
У меня есть коллекция MongoDB с несколькими вложенными документами. Вот как выглядит мой образец документа:
{
"_id" : ObjectId("58a331ffb854d000f97862f3"),
"first_name" : "John",
"last_name" : "Doe",
"email" : "test@test.com",
"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)
Как я могу получить эти массивы? Я также планирую внедрить их еще больше, добавив Prescriptions
субдокументы к каждому из Diagnosis
документ.
1 ответ
Вам нужно перебрать массив диагностики.
@foreach($users as $user)
@foreach $diagnosis as $user->diagnosis
{{ var_dump($diagnosis) }}
@endforeach
@endforeach