我從控制器獲取關系資料,但不能在刀片中使用
控制器..
$employees = Post::where('user_id', $user_id)->with('people')->get();
Blade,我在 foreach 中使用像 ..
$employee->people->image
但它給出了錯誤
此集合實體上不存在屬性 [image]。
當我 dd($employees)
![此集合實體上不存在屬性 [image]。/ Laravel - with() 方法](https://img.uj5u.com/2021/12/16/11fcd53351e14b76ab4afd1b454e3fbf.png)
uj5u.com熱心網友回復:
問題是變數 $employee(其中包含模型 Post btw)與我假設的人的關系為 1:N
這意味著你必須回圈關系回傳的人集合
例如
@foreach($employees as $employee)
@foreach($employee->people as $person)
{{ $person->image }}
@endforeach
@endforeach
uj5u.com熱心網友回復:
你必須 foreach people 關系,你正在為那個帖子收集人們的集合,所以你必須 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
uj5u.com熱心網友回復:
請檢查您發布的模型是否定義了關系函式?
public function people() {
return $this->hasMany(people::class); // Add localID and foreign_key ID as param if requires
}
還要檢查影像屬性是否存在
請檢查 此集合實體上不存在屬性 [title]希望這有助于
uj5u.com熱心網友回復:
在這種情況下,每個帖子都有很多人。因此,您需要指定要從哪些人那里獲取資訊。例如,此代碼可以作業:
$employee->people->first()->image
因為你是從第一批人那里得到形象的。但是我不推薦使用此代碼,因為您要獲取帖子的所有人并僅使用其中一個并且未進行優化。
但是,如果您想向所有人展示,請使用以下命令:
@foreach($employees as $employee)
@foreach($employee->people as $person)
{{ $person->image }}
@endforeach
@endforeach
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/382620.html
