簡體   English   中英

此集合實例上不存在屬性 [圖像]。 / Laravel - with() 方法

[英]Property [image] does not exist on this collection instance. / Laravel - with() Method

我從 controller 獲得了關系數據,但不能在刀片中使用

Controller..

$employees = Post::where('user_id', $user_id)->with('people')->get();

刀片,我在 foreach 中使用,例如..

$employee->people->image

但它給出了錯誤

此集合實例上不存在屬性 [圖像]。

當我 dd($employees)

在此處輸入圖像描述

問題是變量$employee(包含model Post btw)與我假設的人有1:N的關系

這意味着您必須循環關系返回的人員集合

例如

@foreach($employees as $employee)
   @foreach($employee->people as $person)
      {{ $person->image }}
   @endforeach
@endforeach

您必須 foreach 人的關系,您正在收集該帖子的人,因此您必須 foreach 它,因為關系返回數組,每個帖子的所有人。

@foreach($employees as $employee)
   @foreach($employee->people as $user)
      {{ $user->image }}
   @endforeach
@endforeach

如果你只想要一個你可以使用的人

$employee->people->first()->image

你應該使用這種方式

@if( $employee->people->first()->image)
    {{ $employee->people->first()->image }}
@endif

請檢查您發布的 model 是否定義了關系 function?

public function people() {
        return $this->hasMany(people::class); // Add localID and foreign_key ID as param if requires
 }

還要檢查圖像屬性是否存在

請檢查此集合實例上不存在屬性 [標題]希望對您有所幫助

在這種情況下,每個帖子都有很多人。 因此,您需要指定要從哪些人那里獲取信息。 例如,此代碼可以工作:

$employee->people->first()->image

因為你從第一批人那里得到了圖像。 但我不推薦此代碼,因為您正在獲取所有人員的帖子並且只使用其中一個並且它沒有經過優化。

但是,如果您想向所有人展示使用此功能:

@foreach($employees as $employee) 
    @foreach($employee->people as $person)
        {{ $person->image }}
    @endforeach
@endforeach

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM