Laravel 4 Eager Loading"Undefined Property"

Jar*_*ing 6 php laravel laravel-4

为什么我不能在急切加载的Senario中访问该属性?

我正在尝试访问我的设施模型的照片位置.他们有很多:许多关系.当我使用加载设施信息时

$facilities = Facility::with('photos')->get();
Run Code Online (Sandbox Code Playgroud)

当我尝试访问时

foreach($facilities as $facility)
{
    echo $facility->photos->id;
}
Run Code Online (Sandbox Code Playgroud)

我明白了 Undefined property: Illuminate\Database\Eloquent\Collection::$id

如果我回应$facilities->photos我最终.

[{"id":"3",
"name":null,
"location":"facilities\/facility1.jpg\r",
"created_at":"2013-07-18 14:15:19",
"deleted_at":null,
"updated_at":null,
"pivot":{"facility_id":"5","photo_id":"3"}}]
Run Code Online (Sandbox Code Playgroud)

什么是访问此阵列中任何属性的最佳方法?

Alt*_*rim 18

通过热切加载,photos您可以获得一个photos集合,并且为了获得您需要迭代整个photos集合的照片,例如

foreach($facilities as $facility)
{

 foreach($facility->photos as $photo)
 {
    echo $photo->id;
 }

}
Run Code Online (Sandbox Code Playgroud)

如果您只想要第一张照片,可以通过调用first()该集合上的方法来获取它

foreach($facilities as $facility) 
{
  $facility->photos->first()->id;
}
Run Code Online (Sandbox Code Playgroud)