属性 [image] 在此集合实例上不存在。 / Laravel - with() 方法
Property [image] does not exist on this collection instance. / Laravel - with() Method
我从 controller 获取数据,但不能在 blade 中使用
控制器..
$employees = Post::where('user_id', $user_id)->with('people')->get();
Blade,我在 foreach 中使用,比如 ..
$employee->people->image
但是报错
Property [image] does not exist on this collection instance.
当我 dd($employees)
请检查您的post模型是否定义了关系函数?
public function people() {
return $this->hasMany(people::class); // Add localID and foreign_key ID as param if requires
}
还要检查图像 属性 是否存在
请检查
希望对您有所帮助
问题是变量 $employee(顺便说一下,它包含模型 Post)
与我认为
的人有关系1:N
意味着您必须循环关系返回的人员集合
例如
@foreach($employees as $employee)
@foreach($employee->people as $person)
{{ $person->image }}
@endforeach
@endforeach
你必须 foreach people relationship,你正在为那个 post 收集人,所以你必须 foreach 它,因为 relationship return array with all people per post.
@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
这样的话,每个post都有很多人。因此,您需要指定要从哪些人那里获取信息。
例如,这段代码可以工作:
$employee->people->first()->image
因为你是从第一批人那里得到的图像。但是我不推荐这个代码,因为你得到了 post 的所有人并且只使用其中一个并且它没有优化。
但是如果你想向所有人展示使用这个:
@foreach($employees as $employee)
@foreach($employee->people as $person)
{{ $person->image }}
@endforeach
@endforeach
我从 controller 获取数据,但不能在 blade 中使用
控制器..
$employees = Post::where('user_id', $user_id)->with('people')->get();
Blade,我在 foreach 中使用,比如 ..
$employee->people->image
但是报错
Property [image] does not exist on this collection instance.
当我 dd($employees)
请检查您的post模型是否定义了关系函数?
public function people() {
return $this->hasMany(people::class); // Add localID and foreign_key ID as param if requires
}
还要检查图像 属性 是否存在
请检查
问题是变量 $employee(顺便说一下,它包含模型 Post) 与我认为
的人有关系1:N意味着您必须循环关系返回的人员集合
例如
@foreach($employees as $employee)
@foreach($employee->people as $person)
{{ $person->image }}
@endforeach
@endforeach
你必须 foreach people relationship,你正在为那个 post 收集人,所以你必须 foreach 它,因为 relationship return array with all people per post.
@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
这样的话,每个post都有很多人。因此,您需要指定要从哪些人那里获取信息。 例如,这段代码可以工作:
$employee->people->first()->image
因为你是从第一批人那里得到的图像。但是我不推荐这个代码,因为你得到了 post 的所有人并且只使用其中一个并且它没有优化。
但是如果你想向所有人展示使用这个:
@foreach($employees as $employee)
@foreach($employee->people as $person)
{{ $person->image }}
@endforeach
@endforeach