首页 > 解决方案 > 渲染与使用紧凑的刀片中的急切加载数据有很多关系会出错

问题描述

我在刀片视图中使用@foreach 将这种格式的数据作为单个数据对象 -

{ 
   "id":55,
   "role_id":2,
   "first_name":"Ashiqur",
   "avatar":"users\/default.png",
   "created_at":"2019-11-13 09:29:25",
   "updated_at":"2019-11-13 09:29:45",
   "language_id":1,
   "level_id":1,
   "status":0,
   "phone":"8801939622736487",
   "address_id":1,
   "last_name":"Rahman",
   "level":{ 
      "id":1,
      "name":"Standard",         
      "created_at":"2019-10-08 05:30:00",
      "updated_at":"2019-11-07 10:19:45",          
      "document_type":[ 
         { 
            "id":1,
            "name":"Document 1",
            "created_at":"2019-10-08 05:51:31",
            "updated_at":"2019-10-08 05:51:31",
            "user_level_id":1,
            "doc_list":{ 
               "id":2,
               "user_id":55,
               "name":"Doc",
               "doc":"phpZAdbQp.jpg",
               "created_at":"2019-11-13 11:09:31",
               "updated_at":"2019-11-13 11:09:31",
               "doc_type_id":1,
               "doc_status_id":11,
               "doc_check":{ 
                  "name":null,
                  "status_id":9,
                  "doc_id":2,
                  "status":{ 
                     "id":9,
                     "name":"Rejected",
                     "created_at":"2019-10-28 11:32:38",
                     "updated_at":"2019-10-28 11:32:38"
                  }
               },
               "status":{ 
                  "id":11,
                  "name":"Not Verified",
                  "created_at":"2019-11-08 10:38:59",
                  "updated_at":"2019-11-08 10:38:59"
               }
            }
         },
         { 
            "id":2,
            "name":"Photo",
            "created_at":"2019-10-08 06:00:18",
            "updated_at":"2019-10-08 06:00:18",
            "user_level_id":1,
            "doc_list":{ 
               "id":9,
               "user_id":55,
               "name":"Photo",
               "doc":"phpXOuA5o.jpg",
               "created_at":"2019-11-14 05:17:46",
               "updated_at":"2019-11-14 05:17:46",
               "doc_type_id":2,
               "doc_status_id":11,
               "doc_check":{ 
                  "name":null,
                  "status_id":9,
                  "doc_id":9,
                  "status":{ 
                     "id":9,
                     "name":"Rejected",
                     "created_at":"2019-10-28 11:32:38",
                     "updated_at":"2019-10-28 11:32:38"
                  }
               },
               "status":{ 
                  "id":11,
                  "name":"Not Verified",
                  "created_at":"2019-11-08 10:38:59",
                  "updated_at":"2019-11-08 10:38:59"
               }
            }
         }
      ]
   }
}

我正在使用紧凑功能从控制器获取数据以查看。

我的控制器 -

$allDatas = User::where('status', 0)
        ->with('level', 'level.documentType', 'level.documentType.doc_list', 'level.documentType.doc_list.docCheck', 'level.documentType.doc_list.docCheck.status', 'level.documentType.doc_list.status')
        ->get();


return view('doc/browse', compact('allDatas'));

当我想渲染 document_type 的数组时,我得到了这个错误 -

试图获取非对象的属性“documentType”

@foreach($data->level->documentType as $doc_type)
    {!!$doc_type->name!!}
@endforeach

如何将这些数据呈现到我的刀片视图中?

标签: laravelcontrollerlaravel-bladelaravel-6

解决方案


试一试。

@if(isset($data->level) && isset($data->level->documentType))
    @foreach($data->level->documentType as $doc_type)
        {!!$doc_type->name!!}
    @endforeach
@endif

此外,正如 lagbox 在第一条评论中指出的那样,可能存在用户可能没有级别关系的情况。


推荐阅读