【发布时间】:2014-12-22 08:06:52
【问题描述】:
这方面有很多问题,但我找不到合适的。我认为这是非常基本的 Laravel 理解。
我在“属性”和“图像”之间建立了一个简单的关系。对于特定的映射视图,我需要获取属性数据以及“引导”图像的文件名。因此,我只需要一个图像结果,具体取决于图像是否在数据库中被标记为“1”作为主要图像。
控制器代码如下所示:
if(Input::get('m') == 'true'){
//$map_data = Property::all();
$map_data = Property::with(array('images' => function($query)
{
//just grab the lead image to put in the marker popups.
$query->where('is_lead', 1)->first();
}))->get();
return View::make('property_map')->with('data', $map_data);
}
但在视图中,我可以让它工作的唯一方法是使用 foreach 循环,即使我只想要一个结果:
@foreach($property->images as $image)
{{$image->filename}}
@endforeach
这显然是愚蠢的。我想我只是在视图中缺少了一些简单的循环,但我可能也误解了如何在控制器中解决这个问题。我想我已经阅读了 Laravel 文档大约 20 次,只是不太了解这个小细节。谢谢。
更新 - 我刚刚又尝试了一次,并通过在视图中执行此操作来摆脱无意义的 foreach:
$property->images->first()["filename"]
.. 但这仍然感觉不是很“laravel”.. 仍然会感谢任何关于更好方法的想法。
【问题讨论】:
标签: php laravel collections eloquent