есть много вопросов в этой области, но я не могу найти тот, который подходит. Я думаю, что это очень простое понимание Laravel.laravel eloquent hasmany отношение возвращается когда один ряд требуется
У меня есть простая взаимосвязь между «свойствами» и «образами». Для определенного вида отображения мне нужно получить данные свойства вместе с именем файла «ведущего» изображения. Таким образом, мне нужен только один результат изображения, в зависимости от того, помечено ли изображение «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($property->images as $image)
{{$image->filename}}
@endforeach
Это очевидно глупо. Я думаю, что я просто пропустил что-то простое с этим циклом в представлении, но я, возможно, неправильно понял, как обращаться с этим в контроллере тоже. Думаю, что я читал документы laravel около 20 раз, просто не могу получить эту маленькую деталь. Благодарю.
UPDATE - Я только что был еще один пойти на это, и сумел избавиться от бессмысленного Еогеаспа, делая это в представлении:
$property->images->first()["filename"]
.. но это все еще чувствует себя не очень " laravel '.. по-прежнему ценит любые мысли о лучшем способе сделать это.
Я думаю, что это просто даст мне одно свойство, тогда как мне нужны все свойства, причем каждый из них имеет только одно связанное изображение. – slickdaze