2017-03-09 73 views
0

大家好,我想在本文檔的laravel blade中顯示所有者名稱。如何在Laravel Blade中顯示嵌入式MongoDB文檔?

我可以使用foreach循環顯示名稱和描述,但不能從嵌入式文檔顯示。

{ 
     "_id" : ObjectId("58c1b173ebda1297b747271b"), 
     "name" : "Name of Board", 
     "description" : "Board short description", 
     "postdate" : ISODate("2016-12-19T06:01:17.171Z"), 
     "owner" : [ 
       { 
         "_id" : ObjectId("58c13ebaebda1297b747271a"), 
         "name" : "Joker" 
       } 
     ], 
     "tag" : { 

     }, 
     "subscribers" : [ 
       { 

       } 
     ], 
     "likes" : [ 
       ObjectId("58c13ebaebda1297b747271a") 
     ] 
} 

請給予幫助。謝謝你提前

+0

所有者字段的值訪問它是得到了在其內部另一個數組的數組。循環嵌套的foreach。 – Josip

+0

@Josip我試過這個(https://paste.laravel.io/on2P1)和(https://paste.laravel.io/LKqOM)但是不能正常工作 –

+0

嘗試像這樣...你需要再次循環所有者它是包含數組的數組... https://paste.laravel.io/Zo7qM – Josip

回答

0

當您需要用foreach訪問它的嵌套數組...

@foreach ($boards as $board) 
    <p>{{ $board->name }}</p> 
    @foreach ($board->owner as $ownerArray) 
    <p>{{ $ownerArray['name'] }}</p> 
    @endforeach 
    @endforeach 
+0

對不起,它不起作用。我得到這個錯誤'不能在第3行使用類型爲MongoDB \ BSON \ ObjectID的對象作爲數組' –

0

確定。我改變了存儲數據的方式。

{ 
     "_id" : ObjectId("58c1d1a48c2201423599f7fd"), 
     "name" : "Name of Board2", 
     "description" : "Board short description", 
     "postdate" : ISODate("2016-12-19T06:01:17.171Z"), 
     "owner" : { 
       "_id" : ObjectId("58c13ebaebda1297b747271a"), 
       "name" : "Joker" 
     }, 
     "tag" : { 

     }, 
     "subscribers" : [ 
       { 

       } 
     ], 
     "likes" : [ 
       ObjectId("58c13ebaebda1297b747271a") 
     ] 
} 

然後,我通過

@foreach ($boards as $board) 
    <p>{{ $board->name }}</p> 

    <p>{{ $board['owner']['name'] }}</p> 

    @endforeach