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
Другие вопросы по тегам